Java org.openqa.selenium.WebDriverException:通过selenium v3.4.0和geckodriver-v0.20.1启动Firefox浏览器45.0.1时,连接被拒绝
我无法为以下脚本启动Firefox浏览器 脚本#1:Java org.openqa.selenium.WebDriverException:通过selenium v3.4.0和geckodriver-v0.20.1启动Firefox浏览器45.0.1时,连接被拒绝,java,selenium,firefox,selenium-webdriver,geckodriver,Java,Selenium,Firefox,Selenium Webdriver,Geckodriver,我无法为以下脚本启动Firefox浏览器 脚本#1: System.setProperty("webdriver.gecko.driver", "D:\\selenium\\Geckodriver\\geckodriver.exe"); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); WebDriver driver
System.setProperty("webdriver.gecko.driver", "D:\\selenium\\Geckodriver\\geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new FirefoxDriver(capabilities);
driver.close();
脚本#2:
System.setProperty("webdriver.gecko.driver", "D:\\selenium\\Geckodriver\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.com");
我的Firefox版本:45.0.1Selenium Jar版本:Selenium-server-standalone-3.4.0
Gecko驱动程序版本:geckodriver-v0.20.1-win32 我收到的错误消息如下所述:
Exception in thread "main" org.openqa.selenium.WebDriverException: connection refused
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'SYNCGDC4098', ip: '172.26.59.52', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_151'
Driver info: driver.version: FirefoxDriver
remote stacktrace:
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$22(ProtocolHandshake.java:365)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source)
at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.findFirst(Unknown Source)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:368)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:159)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:137)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:108)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:104)
at seleniumtips.BasicScript.openApp(BasicScript.java:10)
at seleniumtips.BasicScript.main(BasicScript.java:18)
线程“main”org.openqa.selenium.WebDriverException中的异常:连接被拒绝
生成信息:版本:“3.4.0”,版本:“未知”,时间:“未知”
系统信息:主机:'SYNCGDC4098',ip:'172.26.59.52',os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.8.0_151'
驱动程序信息:Driver.version:FirefoxDriver
远程堆栈跟踪:
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)
位于org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)
位于org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$22(ProtocolHandshake.java:365)
位于java.util.stream.ReferencePipeline$3$1.accept(未知源)
在java.util.Spliterators$ArraySpliterator.tryAdvance处(未知源)
位于java.util.stream.ReferencePipeline.forEachWithCancel(未知源)
位于java.util.stream.AbstractPipeline.copyIntoWithCancel(未知源)
位于java.util.stream.AbstractPipeline.copyInto(未知源)
位于java.util.stream.AbstractPipeline.wrapAndCopyInto(未知源)
位于java.util.stream.FindOps$FindOp.evaluateSequential(未知源)
位于java.util.stream.AbstractPipeline.evaluate(未知源)
位于java.util.stream.ReferencePipeline.findFirst(未知源)
位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:368)
位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:159)
位于org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)
位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250)
位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236)
位于org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java:137)
位于org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:191)
位于org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:108)
位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:104)
位于seleniumtips.BasicScript.openApp(BasicScript.java:10)
位于seleniumtips.BasicScript.main(BasicScript.java:18)
我做错了什么?从中可以看出,geckodriver的最新版本是v0.20.1。您应该将此版本与当前最新版本的Firefox浏览器一起使用
此外,您正在使用旧版本的selenium(从,当前最新版本是3.12.0)
您需要更新firefox浏览器和selenium独立服务器
如果你想(被迫)使用最旧的(45.0.1),你应该使用相关的geckodriver。你可以按照@Davide Patti的指示分别升级Selenium和geckodriver。但是,在script1这一行中:
WebDriver=newfirefoxdriver(功能),因为它已被弃用
您可以尝试的代码:
FirefoxOptions foptions = new FirefoxOptions();
foptions.setCapability("marionette", true);
WebDriver driver = new FirefoxDriver(foptions);
此错误消息
Exception in thread "main" org.openqa.selenium.WebDriverException: connection refused
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
…表示由于驱动程序无法启动其内部服务器与Java客户端通信而引发
为了简单起见,在使用Selenium Java Client v3.4.0和Firefox v45.0.1时,需要使用兼容的GeckoDriver二进制文件
- 提及事项的发布说明:
强烈建议使用Geckodriver 0.16
- 因此,您必须将
GeckoDriver
二进制版本压缩到0.16.0
- 现在,当您使用Selenium Java Client v3.4.0时,GeckoDriver v0.16.0与Firefox v45.0.1一起使用时,您必须使用
System.setProperty()
line传递键webdriver.gecko.driver
以及作为GeckoDriver二进制文件绝对路径的值,最后通过类实例将功能marionate设置为false,然后使用类中的方法将功能合并到实例实例中以启动Firefox浏览器如下所示:
System.setProperty("webdriver.gecko.driver", "C:/path/to/geckodriver.exe");
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("marionatte", false);
FirefoxOptions opt = new FirefoxOptions();
opt.merge(dc);
FirefoxDriver driver = new FirefoxDriver(opt);
driver.get("https://stackoverflow.com");
System.out.println("Application opened");
System.out.println("Page Title is : "+driver.getTitle());
driver.quit();
您可以在以下内容中找到类似的讨论: