我试图单击以下页面上的“查看更多结果”按钮: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=&az[b]=b&&&&&&&&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] 举报,一经查实,本站将立刻删除。