是否可以在本地使用多个硒网络驱动程序,而无需使用硒网格同时运行多个测试?
我通过调用new FireFoxDriver()
创建多个实例,但窗口中的会话似乎互相干扰。
驱动程序由下面显示的JUnit-Methods创建和销毁。对于每个Test-class,都有一个WebDriver,但每个测试用例具有不同的执行持续时间。第一个Test-class完成后,调用此类的tearDownClass()
。
抛出此异常:
org.openqa.selenium.remote.SessionNotFoundException:调用quit()后无法使用FirefoxDriver。 构建信息:版本:'2.39.0',修订版:'14fa800511cc5d66d426e08b0b2ab926c7ed7398',时间:'2013-12-16 13:18:38' 系统信息:主机:'T61',ip:'127.0.1.1',os.name:'Linux',os.arch:'i386',os.version:'3.11.0-15-generic',java.version :'1.7.0_51'
@BeforeClass
public static void setUpClass() {
driver = new FireFoxDriver();
}
@AfterClass
public static void tearDownClass() {
driver.quit(); // this should only kill the current driver
}
答案 0 :(得分:1)
然后尝试为不同的实例使用不同的驱动程序变量:
例如:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class Testing
{
WebDriver driver1, driver2;
@BeforeClass
public void BeforeClass()
{
driver1 = new FirefoxDriver();
driver2 = new FirefoxDriver();
}
@Test
public void Test1() throws InterruptedException
{
driver1.get("http://www.google.com");
driver2.get("http://gmail.com");
}
@org.testng.annotations.AfterClass
public void AfterClass()
{
driver1.quit();
}
}
答案 1 :(得分:0)
尝试使用不同的日食.. 我的意思是,开始2次日食&在两次日食中运行相同的程序....
答案 2 :(得分:0)
您可以在没有完整Selenium Grid的情况下使用RemoteWebDriver。如果您在本地启动Selenium Standalone jar而不定义角色,那么它实际上是一个Grid和Node组合成一个。使用此本地Selenium Server实例,您可以同时运行多个浏览器。
通过RemoteWebDriver创建Firefox实例非常简单,并且在线
上有详细记录答案 3 :(得分:-1)
默认selenium将在4444端口上运行。请创建您的实例,以便通过添加
使每个实例具有不同的端口 -port <port id/number>