我可以使用selenium:python记录但不能双击本地web页面的元素来提取结果页面

2024-09-29 22:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我浏览了很多帖子,双击我的网页元素后无法进行任何更改:

 <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 web界面完成我需要做的事情

我的问题是,如果没有id,是否可以单击它? 或者如何找到要单击的按钮。我可以理解web界面的代码不是很好,但我不允许更改其代码或添加元素。 先谢谢你


Tags: dividdriverseleniumelementthislabeltr
1条回答
网友
1楼 · 发布于 2024-09-29 22:21:09

首先find_elements_by_xpath将返回元素列表,在代码中传递的是列表而不是元素

因此,更改下面的行

element = driver.find_elements_by_xpath("//*[@id='NotRead']")

element = driver.find_element_by_xpath("//*[@id='NotRead']")

相关问题 更多 >

    热门问题