如何在python中使用selenum点击数字按钮(onclick Event)?

ham*_*yad 4 selenium click buttonclick web-scraping python-2.7

我有这样的HTML代码:

<ul aria-hidden="false" aria-labelledby="resultsPerPage-button" id="resultsPerPage-menu" role="listbox" tabindex="0" class="ui-menu ui-corner-bottom ui-widget ui-widget-content" aria-activedescendant="ui-id-2" aria-disabled="false" style="width: 71px;">
    <li class="ui-menu-item">
        <div id="ui-id-1" tabindex="-1" role="option" class="ui-menu-item-wrapper">20</div>
   </li>
   <li class="ui-menu-item"><div id="ui-id-2" tabindex="-1" role="option" class="ui-menu-item-wrapper ui-state-active">50</div>
   </li>
   <li class="ui-menu-item"><div id="ui-id-3" tabindex="-1" role="option" class="ui-menu-item-wrapper">100</div>
   </li>
   <li class="ui-menu-item"><div id="ui-id-4" tabindex="-1" role="option" class="ui-menu-item-wrapper">200</div>
   </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想点击"200".你能帮我吗?我在python 2.7中使用了selenium

我试过这样做:

import time 

time.sleep(10) 
x=driver.find_element_by_link_text("200").click() 
x.click() 
time.sleep(8)
Run Code Online (Sandbox Code Playgroud)

eLR*_*uLL 6

这里的问题是包含文本的元素200不是"链接",但li在该网站上只定义了可用作可点击元素的标记.

文档不直接指定,但"链接"仅指a标签.

这个想法是一样的,但你必须以不同的方式找到那个元素而不是作为一个链接.使用xpath我认为这种方法的最佳方法是:

x = driver.find_element_by_xpath("//div[./text()='200']")
x.click()
Run Code Online (Sandbox Code Playgroud)

现在当然可以根据text它包含的内容找到一个元素,但是找到你想要的特定节点会更容易和更好地使用它id,因为它应该始终是唯一的:

x = driver.find_element_by_id('ui-id-4')
Run Code Online (Sandbox Code Playgroud)