如何使用Selenium测试网站上的每个链接

时间:2019-09-21 10:44:38

标签: java selenium

我想测试网站上的每个链接。我在Google上搜索了很多,但是只有解决方案可以测试网页上的每个链接。

我想怎么做: 如果脚本单击链接,则如果有新链接,脚本将在新网页上显示。如果有新链接,则脚本将其单击并重复步骤(查看并单击),直到他找不到链接为止。在这种情况下,脚本会向后导航,直到他找到要单击的新链接。

有人对我有解决方案吗?我正在使用Java。

3 个答案:

答案 0 :(得分:0)

您可以使用递归函数打开一个链接,通过Html标记名来查找元素,然后针对列表中的每个链接再次调用该函数。请注意,这可能会持续一段时间,您可能会用完内存等,因为所有网页通常都具有链接。

答案 1 :(得分:0)

我认为,为此目的,使用jsoup库比使用Selenium通过UI导航是更好的选择。

有关更多信息,请遵循本教程:https://www.javatpoint.com/jsoup-tutorial:)

答案 2 :(得分:0)

尝试此代码

links = browser.find_elements_by_tag_name('a')
    for link in links:
        try:
            response = requests.head(link.get_attribute('href'), allow_redirects=True)
            assert response.status_code in (200, 201, 301, 302, 304, 308)
        except Exception as e:
            print("Broken link detected " + str(link.get_attribute('href')))