Java Firefox Selenium驱动程序无法任意加载
我有创建web驱动程序的代码。Java Firefox Selenium驱动程序无法任意加载,java,firefox,selenium,Java,Firefox,Selenium,我有创建web驱动程序的代码。 现在,如果我以1比1创建驱动程序,则此代码可以正常工作。 在多个线程上创建这些驱动程序时会出现问题 public static WebDriver getConfiguredWebDriver(.....) WebDriver driver = null; DesiredCapabilities cap = new DesiredCapabilities(); if(ffp != null) { ffp.setPreference("gener
现在,如果我以1比1创建驱动程序,则此代码可以正常工作。
在多个线程上创建这些驱动程序时会出现问题
public static WebDriver getConfiguredWebDriver(.....)
WebDriver driver = null;
DesiredCapabilities cap = new DesiredCapabilities();
if(ffp != null) {
ffp.setPreference("general.useragent.override", getRandomizedUASettings(rand, UserAgentList));
}
driver = new FirefoxDriver(null, ffp, cap);
//driver = new FirefoxDriver(); also gives an error of the same kind during multithreading
return driver;
}
它给了我这个错误
“Thread-4”org.openqa.selenium.WebDriverException:无法连接到端口7057上的二进制FirefoxBinary(C:\Program Files(x86)\Mozilla Firefox\Firefox.exe);过程输出如下:
无效的
构建信息:版本:“2.28.0”,版本:“18309”,时间:“2012-12-11 20:21:45”
系统信息:os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.6.0_26'
线程代码是
while(...) {
....... //
FirefoxProfile ffp = new FirefoxProfile();
DataEntryThread t = new DataEntryThread(parentFrame, lead, new ProxySettings(proxySettings), ffp, UserAgentList);
t.start();
....... //
}
错误随机出现在任何线程上,甚至出现在端口号上。这里怎么了?如何在不同的线程上加载多个firefox驱动程序?我找到了解决方法。。只需修改上述代码的一部分
boolean driverCreated = false;
int retryCnt = 3;
int count = 0;
while(!driverCreated && count < retryCnt) {
try {
driver = new FirefoxDriver(null, ffp, cap);
driverCreated = true;
System.out.println("Driver Created");
} catch (Exception e) {
retryCnt++;
}
}
if(driverCreated == false) { return null; }
boolean driverCreated=false;
int-retryCnt=3;
整数计数=0;
而(!driverCreated&&count
基本上,我认为使用不同线程加载的驱动程序正在同时访问firefox的同一个二进制文件,这会产生错误,但我仍然不确定