gpt4 book ai didi

python - 如何使用Python Selenium单击未签名列表中的项目

转载 作者:行者123 更新时间:2023-12-03 16:49:41 24 4
gpt4 key购买 nike

我有一个带有按钮的网页
第一,上一个,1、2、3、4、5,下一个,最后一个

我想自动单击“下一步”(及其他),但我无法从未签名的列表中找到正确的方法。

我可以导航到列表中的特定项目。但是,我不能对该项目执行.click()而不返回错误。

这是html代码的部分

<nav>
<input type="hidden" id="page" name="page" value="2">
<input type="hidden" id="resetPage" name="resetPage" value="">
<input type="hidden" id="info_firstPage" value="/info#PCB">
<ul id="info_pageclass" class="pageclass">
<li class="disabled" style="pointer-events: none;"><a href="/info#PCB"><span>First</span></a></li>,
<li class="disabled" style="pointer-events: none;"><a href="/info/page0#PCB" rel="prev"><span>Prev</span></a></li>,
<li class="hidden-xs" style="pointer-events: none;"><a href="/info" style="background: #41ace2 !important; color: #fff !important;">1</a></li>,
<li class="hidden-xs"><a href="/info/page2#PCB">2</a></li>,
<li class="hidden-xs"><a href="/info/page3#PCB">3</a></li>,
<li class="hidden-xs"><a href="/info/page4#PCB">4</a></li>,
<li class="hidden-xs"><a href="/info/page5#PCB">5</a></li>,
<li><a href="/info/page2#PCB" rel="next"><span>Next</span></a></li>,
<li><a href="/info/page9#PCB"><span>Last</span></a></li>
</ul>
</nav>


这是通过IDE逐步执行的python代码

>>> soup = BeautifulSoup(driver.page_source, features='html.parser')
>>> next = soup.find("ul", attrs={"id":"info_pageclass"}).find_all("li")[7]
>>> print(next)
<li>
<a href="/info/page2#PCB" rel="next">
<span>Next</span>
</a>
</li>


这些语句都返回与所示相同的错误(一次)

>>> next.send_keys(Keys.ENTER)
>>> next.click()
>>> next.a.click()
TypeError: 'NoneType' object is not callable

最佳答案

要在文本为click()的文本上显示下一步,您需要诱使WebDriverWait使该元素可单击,并且可以使用以下解决方案之一:


使用CSS_SELECTOR

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul.pageclass#info_pageclass li>a[rel='next']>span"))).click()

使用 XPATH

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='pageclass' and @id='info_pageclass']//li/a[@rel='next']/span[text()='Next']"))).click()

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

关于python - 如何使用Python Selenium单击未签名列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56422303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com