Python Selenium WebDriver在不打印XPath的情况下停止

Python Selenium WebDriver在不打印XPath的情况下停止,python,selenium,mozilla,geckodriver,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数据。但在加载第一页后,即使没有错误,该过程也会停止

这是我的代码:

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

我遗漏了什么?

我们没有收到任何错误的原因是因为您正在捕获错误,然后只使用中断

您还对问题标签的XPATH存在问题。我添加了一个滚动到
next
链接,以防您像我一样在底部收到cookies通知。以下是一个工作示例:

注意:这是在Python3中使用当前的Chrome build 67和 铬驱动2.40


没有收到任何错误的原因是,您正在捕获错误,然后只使用中断

您还对问题标签的XPATH存在问题。我添加了一个滚动到
next
链接,以防您像我一样在底部收到cookies通知。以下是一个工作示例:

注意:这是在Python3中使用当前的Chrome build 67和 铬驱动2.40


我猜你在第一次跑步后会出现异常,所以它会跳入异常并打破你的循环。Try without exception handling是的,尝试过,但没有改变方法
find\u element\u by\u xpath
返回单个元素或
None
。它不会返回一个列表。我猜你在第一次运行后会遇到异常,所以它会跳入异常并打破你的循环。Try without exception handling是的,尝试过,但没有改变方法
find\u element\u by\u xpath
返回单个元素或
None
。它不返回列表。Am获取错误:除NoSuchElementException外为e:NameError:name'NoSuchElementException'未定义您必须导入它,请在导入时尝试更新的代码。Am获取错误:除NoSuchElementException外为e:NameError:name'NoSuchElementException'未定义您必须导入它,尝试导入更新的代码。
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