[英]Using selenium webdriver, how to click on multiple random links in webpage one after another continuously to detect broken links?
[英]Selenium Webdriver Code Snippet for broken Links
我试图使用以下代码片段来验证所有链接是否正常工作
links = driver.find_elements_by_css_selector("a")
for link in links:
if requests.head(link.get_attribute('href')).status_code == 200:
print("valid link")
else:
print("Broken Link")
它在控制台中给了我这个错误消息:
raise InvalidSchema("No connection adapters were found for '%s'" % url) requests.exceptions.InvalidSchema: No connection adapters were found for 'javascript:window.print()'
javascript:window.print()
打开一个打印对话框, requests
不知道如何处理它是完全正常的。 您可能想要过滤“链接”,例如javascript:window.print()
, javascript:alert("something")
。
您可能希望找到类似以下内容的链接:
links = driver.find_elements_by_xpath('//a[contains(@href, *) and not(contains(@href, "#") or contains(@href, "javascript:"))]')
这应该返回所有锚点,除了包含#
或javascript:
作为href
值的锚点(“contain”是部分匹配过滤器)。
您可能需要微调 xpath 以考虑不包含.
或/
(如果定义了基础 url,则可以在没有协议或服务器 url 的情况下找到相对地址)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.