当前位置: 首页 > 面试题库 >

如何使用selenium浏览整个网站?

邴兴为
2023-03-14
问题内容

是否可以使用selenium浏览给定URL(网站)的所有URI ?

我的目标是使用具有给定选择的URL的selenium来启动firefox浏览器(由于有了此网站,我知道该怎么做),然后让firefox浏览URL(该网站)拥有的所有页面。我感谢有关如何在Python中进行操作的任何提示/帮助。


问题答案:

您可以在类中使用递归方法,例如下面给出的方法。

public class RecursiveLinkTest {
    //list to save visited links
    static List<String> linkAlreadyVisited = new ArrayList<String>();
    WebDriver driver;

    public RecursiveLinkTest(WebDriver driver) {
        this.driver = driver;
    }

    public void linkTest() {
        // loop over all the a elements in the page
        for(WebElement link : driver.findElements(By.tagName("a")) {
            // Check if link is displayed and not previously visited
            if (link.isDisplayed() 
                        && !linkAlreadyVisited.contains(link.getText())) {
                // add link to list of links already visited
                linkAlreadyVisited.add(link.getText());
                System.out.println(link.getText());
                // click on the link. This opens a new page
                link.click();
                // call recursiveLinkTest on the new page
                new RecursiveLinkTest(driver).linkTest();
            }
        }
        driver.navigate().back();
    }

    public static void main(String[] args) throws InterruptedException {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://newtours.demoaut.com/");
        // start recursive linkText
        new RecursiveLinkTest(driver).linkTest();
    }
}

希望这对您有所帮助。



 类似资料:
  • 问题内容: 是否可以使用selenium浏览给定URL(网站)的所有URI ? 我的目标是使用具有给定选择的URL的硒来启动firefox浏览器(由于此网站,我知道该怎么做),然后让firefox浏览URL(该网站)拥有的所有页面。我感谢有关如何在Python中进行操作的任何提示/帮助。 问题答案: 您可以在类中使用递归方法,例如下面给出的方法。 希望这对您有所帮助。

  • 我需要在一个网页上滚动(例如twitter),并制作一个网站上出现的新元素的网络抓取。我试着用,和来做这个。这是我的密码 问题是我无法滚动到底部。和是相同的。但是如果我将从更改为,同样的代码可以正常工作。为什么?

  • 所以,我在寻找一种不用Selenium就可以刮动态网站的方法。任何建议都有帮助。 谢了!

  • 我试图找到一个网页上的所有超链接,链接文本也在列表中,页脚名称。我想点击链接,等待(稍后会放入验证检查),导航回来,然后点击allLinksHrefs列表中的下一个链接(其中应该包含所有必要的网页链接元素)。目前,我能够找到第一个链接,单击它,导航回来,但随后测试失败。我使用硒WebDriver与C#。提前感谢。

  • 我想运行和控制一个浏览器窗口从一个web应用程序,以自动化的一些事情(如帐户创建等)在另一个网站。 所以我的问题是,有没有一种方法可以直接从浏览器使用selenium来实现它,在这种情况下如何实现它? 我知道有selenium-webdriver for JS,但在常见的用例中,我们将它与Node.JS一起使用。 WebDriver介绍建议这是可能的: 它的主要目的是允许web作者编写测试,使用户

  • 我正在使用selenium使用chrome浏览器来自动化网页,但是chrome浏览器没有启动,它在地址栏中显示“数据:;”而没有加载任何页面。 selenium: selenium-服务器-独立-3.0.0-beta2,也尝试了2.53 Chrome驱动程序:2.23(http://chromedriver.storage.googleapis.com/index.html?path=2.23/)