无法使用selenium Web驱动程序启动Firefox浏览器

问题描述 投票:0回答:3

我无法使用selenium webdriver 3.4.0启动Firefox浏览器

浏览器版本:Firefox 54.0.1

这是我的代码:

public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");
    System.setProperty("webdriver.gecko.driver", "C:\\xx\\geckodriver.exe");
     WebDriver driver=new FirefoxDriver();
    driver.get("http://www.google.co.in");
    driver.quit();
 }
}

得到错误

1508548441651 geckodriver INFO geckodriver 0.18.0 1508548441660 geckodriver INFO侦听127.0.0.1:48046线程“main”中的异常org.openqa.selenium.WebDriverException:org.apache.http.conn.HttpHostConnectException:连接到localhost:48046 [localhost / 127.0 .0.1,localhost / 0:0:0:0:0:0:0:1]失败:连接被拒绝:连接构建信息:版本:'3.4.0',修订版:'未知',时间:'未知'系统info:host:'ADMINRG-627BJ6K',ip:'192.168.1.3',os.name:'Windows 10',os.arch:'amd64',os.version:'10 .0',java.version:'1.8。 0_131'驱动程序信息:driver.version:Firefox驱动程序org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:91)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。( RemoteWebDrive r.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)at com.webdriver.Testing.main(Testing.java:15)引起:org.apache.http.conn.HttpHostConnectException:连接到localhost:48046 [localhost / 127.0.0.1, localhost / 0:0:0:0:0:0:0:1]失败:连接被拒绝:连接org.apache上的org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159)。位于org.apache.http.impl.execchain.MainClientExec的org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)中的http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)。执行(MainClientExec.java:237)org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)atg.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)在或g.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)位于org.apache.http.impl的org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)。 org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient。)中的org.apache.http.impl.client.CloseableHttpClient.exe执行(CloseableHttpClient.java:56)中的client.CloseableHttpClient.execute(CloseableHttpClient.java:72)。 java:139)org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:87)org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:343)atg.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)... 8更多引起:java.net.ConnectException:连接被拒绝:在java.net.DualStackPlainSoc连接位于java.net.AbstractStackPocketSmplImpl.doConnect(未知来源)的javaI.AbstractPlainSocketImpl.mplConnect(未知来源)位于java.net.AbstractPlain上的java.net.AbstractPlainSocketImpl.connectToAddress(未知来源)中的ketImpl.waitForConnect(本地方法)。在java.net.SocksSocketImpl.connect(未知来源)的java.net.SocksSocketImpl.connect(未知来源)连接(未知来源),位于org.apache.http.conn的java.net.Socket.connect(未知来源)。 socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75)at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)... 23更多

firefox selenium-webdriver
3个回答
2
投票

您可以在maven中使用“Webdrivermanager”插件,而不是使用特定浏览器的驱动程序,因此它将解决与浏览器及其实例相关的大多数问题。即使这有助于我克服与浏览器相关的问题。例如。 1.使用maven 2添加Webdrivermanager插件。如下所述,直接调用您选择的浏览器,如firefox。

FirefoxDriverManager.getInstance()设置(); driver = new FirefoxDriver();


2
投票

在某些firefox浏览器版本的情况下,驱动程序无法使用属性“webdriver.gecko.driver”启动浏览器。而不是这个你可以尝试以下代码:

 DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability("marionette", true);
    WebDriver driver = new FirefoxDriver(capabilities);

0
投票

试试这种方式:我正在使用C#,但这种方式对我有用。您可以按照Java中的相同方式提供“firefox.exe”和“GeckoDriver”作为本地路径

var binary = new FirefoxBinary(@"----Firefox.exe Path------");
var profile = new FirefoxProfile();
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"----GeckoDriver Path------");
service.FirefoxBinaryPath = @"----Firefox.exe Path------";
driverInstance = new FirefoxDriver(service);
© www.soinside.com 2019 - 2024. All rights reserved.