使用Python Selenium滚动浏览页面

时间:2018-06-26 07:58:40

标签: selenium selenium-chromedriver

我写了一个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

有什么想法我在做什么错了吗?

非常感谢。

克里斯

1 个答案:

答案 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>