我无法使用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更多
您可以在maven中使用“Webdrivermanager”插件,而不是使用特定浏览器的驱动程序,因此它将解决与浏览器及其实例相关的大多数问题。即使这有助于我克服与浏览器相关的问题。例如。 1.使用maven 2添加Webdrivermanager插件。如下所述,直接调用您选择的浏览器,如firefox。
FirefoxDriverManager.getInstance()设置(); driver = new FirefoxDriver();
在某些firefox浏览器版本的情况下,驱动程序无法使用属性“webdriver.gecko.driver”启动浏览器。而不是这个你可以尝试以下代码:
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new FirefoxDriver(capabilities);
试试这种方式:我正在使用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);