我写了一个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
有什么想法我在做什么错了吗?
非常感谢。
克里斯
答案 0 :(得分:0)
您可以尝试以下代码:
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
如果要在同一选项卡中一个接一个地打开链接,则必须处理过时的元素引用,因为一旦从主页移出,所有元素都将变为过时的。 / p>