Selenium WebDriver停止而不打印XPath

时间:2018-07-26 18:04:58

标签: python selenium mozilla geckodriver

我正在尝试在控制台中打印XPath数据。但是,即使没有错误,加载第一页后该过程也会停止。

这是我的代码:

browser.get('https://stackoverflow.com/questions?pagesize=10')
while True:
    try:
        elm = browser.find_element_by_link_text("next")
        elm.click()
        labels = browser.find_element_by_xpath('/html/body/div[3]/div[2]/div[1]/div[3]/div/div/div[1]/div[2]/h3/a')
        for label in labels:
            print label.text
    except:
        break

我想念什么?

1 个答案:

答案 0 :(得分:2)

之所以没有出现任何错误,是因为您正在捕获它们,然后只使用 break

您的问题标签的 XPATH 也有问题。如果您像我以前一样在底部收到cookie通知,则我将滚动滚动到next链接。这是一个工作示例:

  

注意:这是在Python 3中使用当前的Chrome构建版本 67 和   chromedriver 2.40

import traceback
from selenium.common.exceptions import NoSuchElementException

browser.get('https://stackoverflow.com/questions?pagesize=10')
while True:
    try:
        elm = browser.find_element_by_link_text("next")
        browser.execute_script("return arguments[0].scrollIntoView();", elm)
        elm.click()
        labels = browser.find_elements_by_xpath('.//a[@class="question-hyperlink"]')
        for label in labels:
            print(label.text)
    except NoSuchElementException:
        print("only catching this exception now when you run out of the next elements, other exceptions will raise")
        print(traceback.format_exc())
        break