Я обошел множество постов и не смог выполнить никаких изменений, дважды щелкнув элемент моей веб-страницы ниже:
<div class="tbl-content">
<table class="hoverTable" cellpadding="0" cellspacing="0" border="0" id="alarms">
<tbody> <tr ondblclick="DoubleRowClick(this, '9', '2019-06-12 15:59:49', '2019-06-12 16:00:55');" id="NotRead">
<td class="NotReadCell">2019-06-12</br>15:59:49 UTC </td>
<td class="NotReadCell"> NAME 1 </td>
<td>
<div class='slideTwo'>
<input type='checkbox' value="None" id="slide9" name="check" onchange="stateCheck(this, '9');">
<label for="slide9"></label>
</div>
</td>
</tr> <tr ondblclick="DoubleRowClick(this, '10', '2019-06-13 09:32:54', '2019-06-13 09:33:36');" id="NotRead">
<td class="NotReadCell">2019-06-13</br>09:32:54 UTC </td>
<td class="NotReadCell"> NAME 2 </td>
<td>
<div class='slideTwo'>
<input type='checkbox' value="None" id="slide10" name="check" onchange="stateCheck(this, '10');">
<label for="slide10"></label>
</div>
</td>
</tr> <tr ondblclick="DoubleRowClick(this, '11', '2019-06-13 09:34:47', '2019-06-13 09:35:10');" id="NotRead">
<td class="NotReadCell">2019-06-13</br>09:34:47 UTC </td>
<td class="NotReadCell"> NAME 3 </td>
<td>
<div class='slideTwo'>
<input type='checkbox' value="None" id="slide11" name="check" onchange="stateCheck(this, '11');">
<label for="slide11"></label>
</div>
</td>
</tr> <tr ondblclick="DoubleRowClick(this, '12', '2019-06-13 09:36:38', '2019-06-13 09:37:44');" id="NotRead">
<td class="NotReadCell">2019-06-13</br>09:36:38 UTC </td>
<td class="NotReadCell"> NAME 4 </td>
<td>
<div class='slideTwo'>
<input type='checkbox' value="None" id="slide12" name="check" onchange="stateCheck(this, '12');">
<label for="slide12"></label>
</div>
</td>
</tr> <tr ondblclick="DoubleRowClick(this, '13', '2019-06-13 12:22:35', '2019-06-13 12:23:41');" id="NotRead">
<td class="NotReadCell">2019-06-13</br>12:22:35 UTC </td>
<td class="NotReadCell"> NAME 5 </td>
<td>
И мой код:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get("http://1.2.3.4:82805/")
assert "Home" in driver.title
elem = driver.find_element_by_name("pwd")
#print (elem)
elem.clear()
elem.send_keys("0000")
elem.send_keys(Keys.ENTER)
driver.get("http://1.2.3.4:82805/menu.php")
driver.maximize_window()
element = driver.find_elements_by_xpath("//*[@id='NotRead']")
actions = ActionChains(driver)
actions.double_click(element).perform()
И мои ошибки:
Traceback (most recent call last):
File "C:\projects_Drivers\webBrowser.py", line 19, in <module>
actions.double_click(element).perform()
File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\common\action_chains.py", line 83, in perform
action()
File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\common\action_chains.py", line 277, in <lambda>
Command.MOVE_TO, {'element': to_element.id}))
AttributeError: 'list' object has no attribute 'id'
Я перепробовал много решений, но мне нужно знать, заключается ли проблема в моем способе написания кода на Python или невозможно сделать то, что мне нужно сделать с этим HTMLвеб интерфейс.
И мой вопрос: можно ли щелкнуть по нему, если нет идентификатора?Или как я могу найти мою кнопку, чтобы нажать.Я понимаю, что веб-интерфейс недостаточно хорошо закодирован, но мне не разрешено изменять его код или добавлять элементы.Заранее спасибо