我正在尝试在两个不同的浏览器中运行两个不同的操作。
使用 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浏览器并执行不同的任务吗?
问候。
的更多信息答案 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)