微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-使用硒找不到元素find_element_by_partial_link_text

我试图单击以下页面上的“查看更多结果”按钮:http://www.chadbourne.com/search/people?az[b]=b

我的代码简单明了,我尝试了许多迭代.

driver = driver.Firefox()
driver.get("http://www.chadbourne.com/search/people?az[b]=b")
element = driver.find_element_by_partial_link_text("View more results")

要么

element = driver.find_element_by_partial_link_text("view")

要么

element = driver.find_element_by_partial_link_text("results")

无论我尝试上述哪种方法,都将收到NoSuchElementException.

这很奇怪,因为该元素显然存在于页面上:

<a href="/search/people?s=&amp;az[b]=b&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;page=1">View more results</a>

有什么想法吗?

解决方法:

页面加载需要一些时间,该元素不是立即可用.让我们将wait for it设为可点击并将定位器更改为CSS选择器:

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


driver = webdriver.Firefox()
driver.get("http://www.chadbourne.com/search/people?az[b]=b")

wait = webdriverwait(driver, 20)

# get more results
more_results = wait.until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, ".load-more-pager-wrapper .pager-next"))
)
more_results.click()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐