Selenium WebDriver 在不打印 XPath 的情况下停止
Selenium WebDriver stops without printing XPath
我正在尝试在控制台中打印 XPath 数据。但是即使没有错误,该过程在加载第一页后也会停止。
这是我的代码:
browser.get('https://whosebug.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
我错过了什么?
没有收到任何错误的原因是您正在捕获它们,然后仅使用 break.
您对问题标签的 XPATH 也有问题。我在 next
link 中添加了一个滚动条,以防您像我一样在底部收到 cookies 通知。这是一个工作示例:
NOTE: This was testing in Python 3 using current Chrome build 67 and
chromedriver 2.40
import traceback
from selenium.common.exceptions import NoSuchElementException
browser.get('https://whosebug.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
我正在尝试在控制台中打印 XPath 数据。但是即使没有错误,该过程在加载第一页后也会停止。
这是我的代码:
browser.get('https://whosebug.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
我错过了什么?
没有收到任何错误的原因是您正在捕获它们,然后仅使用 break.
您对问题标签的 XPATH 也有问题。我在 next
link 中添加了一个滚动条,以防您像我一样在底部收到 cookies 通知。这是一个工作示例:
NOTE: This was testing in Python 3 using current Chrome build 67 and chromedriver 2.40
import traceback
from selenium.common.exceptions import NoSuchElementException
browser.get('https://whosebug.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