Selenium/Python:Error单击地址为JavaScript、oncli的按钮

2024-10-02 10:31:31 发布

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

我一直试图在使用selenium和python的页面上单击href=“javascript:;”。在

相关的HTML代码是:

<tr> <td class="Sun out">24</td> <td class=" out">25</td> <td class=" out">26</td> <td class=" out">27</td> <td class=" out">28</td> <td id="CellPlayDate0" class=" able"><a href="javascript:;" onclick="fnSelectPlayDate(0, '20171229')">29</a></td> <td id="CellPlayDate1" class=" able"><a href="javascript:;" onclick="fnSelectPlayDate(1, '20171230')">30</a></td> </tr>

对于代码,我有:

^{pr2}$

相应的错误消息是:

AttributeError: 'list' object has no attribute 'click'

我认为元素是列表的,所以我尝试如下

browser.find_elements_by_xpath('//td[@id="CellPlayDate1"]')[0].click()

然而,另一个错误

IndexError: list index out of range

我认为还有另一种方法可以单击按钮(javascript、onclick)。但是,我是硒的初学者,所以我不知道。在

有什么想法吗?在


Tags: 代码id错误ablejavascriptouttrlist
3条回答

似乎browser.find_elements_by_xpath('//*[@id="CellPlayDate0"]')返回一个list元素。在

您需要选择一个元素并创建click事件,如下所示

browser.find_elements_by_xpath('//*[@id="CellPlayDate0"]')[0].click()

错误说明了一切:

AttributeError: 'list' object has no attribute 'click'

根据您的代码块,您有:

^{pr2}$

而不是WebElement返回List。因此,当您尝试单击List时,您会看到错误为AttributeError: 'list' object has no attribute 'click'

解决方案是将方法find_elements_by_xpath更改为find_element_by_id,或者构造一个唯一的xpath,如下所示:

  • 由于WebElement有一个id

    browser.find_elements_by_id("CellPlayDate0').click()
    
  • 构造一个xpath

    browser.find_elements_by_xpath("//td[@id='CellPlayDate0']").click()
    

这里的问题是,您调用的是<td>列表中的click(),而不是{}锚点,它实际上有你想要的点击。试试这个:

browser.find_element_by_xpath('//*[@id="CellPlayDate0"]/a').click()

注意到使用了find_element_by_xpath而不是find_element[s]_by_xpath?或使用css:

^{pr2}$

相关问题 更多 >

    热门问题