我写了一个python脚本,旨在从网站上获取数据,但我无法浏览和循环浏览页面以收集链接。网站 https://www.shearman.com/people?网站上的 Xpath 如下所示;
ul class="results-pagination
">li class/a href onclick="PageRequest('2', event)
">
当我运行下面的查询时,说该元素未附加到页面;
try:
# this is navigate to next page
driver.find_element_by_xpath('//ul[@class="results-pagination"]/li/[@onclick=">"]').click()
time.sleep(5)
except NoSuchElementException:
break
知道我在这方面做错了什么吗?
提前非常感谢。
克里斯
你可以试试这段代码:
browser.get("https://www.shearman.com/people")
wait = WebDriverWait(browser, 30)
main_tab = browser.current_window_handle
navigation_buttons = browser.find_elements_by_xpath('//ul[@class="results-pagination"]//descendant::a')
size = len(navigation_buttons )
print ('this the length of list:',navigation_buttons )
i = 0
while i<size:
ActionChains(browser).key_down(Keys.CONTROL).click(navigation_buttons [i]).key_up(Keys.CONTROL).perform()
browser.switch_to_window(main_tab)
i=i+1;
if i >= size:
break
确保导入这些:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
请注意,这将在新选项卡中打开每个链接。根据您的要求,您可以使用此xpath单击下一步按钮://ul[@class="results-pagination"]//descendant::a
如果你想在同一选项卡中一个接一个地打开链接,那么你将不得不处理陈旧的元素引用,因为一旦你从主页移出,所有元素都会过时。