这样我就可以用
driver.get('https://www.w3.org/')
但是我想测试的是,如果我给予一个错误链接,我应该得到类似于
This page does not exist.
但是当我试图捕捉这个的时候,我无法得到结果
这是失败的,不能报告故障链路
link = "https://www.w3.org/fault_link"
if driver.find_elements_by_xpath("//*[contains(text(), 'This page does not exist')]"):
logger.info("Found fault link %s", link)
这也失败了,无法捕捉。
element = driver.find_element(
By.XPATH, '//*[@id="__next"]/div[1]/main')
# when I print out the element text, I can see the output
# 404 ERROR
# This page does not exist.
# The page you are looking for could not be found.
# Go back home →
logger.info(element.text)
if e.text=='This page does not exist.':
logger.info("Found fault link %s", link)
这也失败了
if search("This page does not exist.", element.text):
logger.info("Found fault link %s", link)
有什么建议吗?
2条答案
按热度按时间3mpgtkmj1#
您的测试失败,因为您预期会找到不存在的文字。
此文本
This page does not exist
在中,而不是在https://www.w3.org/fault_link
页面上显示。您应该在该特定页面上查找的是
Document not found
文本。因此,以下代码适用于该特定页面:
输出为:
一般来说,你应该明白,每个网站将提出不同的错误/通知不存在的网页。
w6lpcovy2#
我的建议是这样做。记住我没有用python编程,只是做了一个快速搜索,以便组装示例:
我正在检查的状态码只有第一个链接上找到的网页。你可以做foreach,如果有东西的状态码〉= 400,那么我们正在谈论的是坏链接。