Selenium Webdriver驱动两个浏览器

时间:2018-02-28 21:37:36

标签: selenium selenium-webdriver

我正在尝试在两个不同的浏览器中运行两个不同的操作。

使用  Is Selenium WebDriver thread safe?我学到了一件重要的事情:“你/可以/另一方面为每个线程实例化一个WebDriver实例。”

所以我创建了两个线程来实例化两个驱动程序(第一个用于谷歌,第二个用于雅虎),如下所示:

public class Thread2 extends Thread{

@Override
public void run() {
    File file = new File(Thread2.class.getClassLoader().getResource("chromedriver").getPath());
    System.setProperty("webdriver.chrome.driver", file.getPath());
    WebDriver driver = new ChromeDriver();
    driver.get("http://www.yahoo.com");
    while (true) {
        driver.findElement(By.id("uh-search-box")).sendKeys("test");
    }
}

我的主类只是实现了这两个线程和调用运行函数。

有一种方法可以同时运行两个或多个X浏览器并执行不同的任务吗?

问候。

https://github.com/AMimicD/TestSeleniumThread

的更多信息

3 个答案:

答案 0 :(得分:0)

你试过创建两个不同的驱动变量吗?

WebDriver driver = new ChromeDriver();
driver.get("http://www.yahoo.com");
WebDriver driver2 = new ChromeDriver();
driver2.get("http://www.whateveryouwant.com");

答案 1 :(得分:0)

我假设您希望同时并行运行测试。因此,在您的main方法中,替换

t1.run(); 
t2.run();

t1.start(); 
t2.start();

现在您应该看到两个浏览器同时运行。

实际创建一个新线程需要

Thread.start(),以便并行执行runnable的run方法。

注意:您的while条件存在问题。条件始终为true,因此它将是infinite loop。请在您的代码中修复此问题。

答案 2 :(得分:0)

将您的脚本与TestNG集成。它将帮助您以并行模式运行脚本。

请参阅link以了解有关使用TestNG进行并行执行的更多信息。

谢谢!