我的selenium代码无法运行。继续向我抛出以下错误:
Caused by: java.lang.IllegalArgumentException: Invalid connect
parameters: {wireFormat.host=127.0.0.1}
FIREFOX版本:53.0.3(32位) SELENIUM版本:selenium-java-3.4.0 我正在使用Eclipse Luna,我的机器是Windows 7(64位)。 我已阅读所有帮助查询但无法找到解决方案。这是我的Java代码:
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'SLAP129', ip: '192.168.4.218', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_74'
Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:658)
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 PractiseSession1.OpenBrowser(PractiseSession1.java:35)
at PractiseSession1.main(PractiseSession1.java:16)
Caused by: java.lang.NullPointerException
at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192)
at org.openqa.selenium.firefox.XpiDriverService.start(XpiDriverService.java:94)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)
... 8 more
答案 0 :(得分:1)
您必须在代码中考虑以下几个因素:
PractiseSession1 ade= new PractiseSession1();
创建了同一类的对象,并使用对象ade
调用不同的方法OpenBrowser()
,GetPage()
和quitbrowser()
。这些方法执行的功能可以通过main()
内的单行代码实现,也可以不创建任何对象。webdriver.gecko.driver
代替webdriver.firefox.marionette
在System.setProperty
行。当您提到System.setProperty
时,您需要提供 geckodriver.exe 的绝对路径,如下所示:
System.setProperty("webdriver.gecko.driver", "C:\\your_directory\\geckodriver.exe");
提到ImplicitlyWait
后,它会在整个程序执行过程中保留。您可以考虑删除多个提及。
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
您的整个代码只能用6行编写,如下所示:
package demo;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class Q44308973_remote_unreachablebrowserexception {
public static void main(String[] args)
{
System.setProperty("webdriver.gecko.driver", "C:\\your_directory\\geckodriver.exe");
DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability("marionette", true);
WebDriver driver = new FirefoxDriver(dc);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://google.com");
}
}
要详细了解webdriver.firefox.marionette
如何演变为webdriver.gecko.driver
,您可以观看this space。
答案 1 :(得分:0)
你应该替换
driver = new FirefoxDriver();
与
driver = new FirefoxDriver(capabilities);
以便您运行具有所需功能的测试。
唯一的问题是它可能不适用于3.4.0,因为默认超时值是reduce,现在可能太短。