【发布时间】:2017-06-14 11:21:47
【问题描述】:
为什么 Gecko Driver (v0.17.0 - x64bit) 没有打开浏览器?
基本页面/方法:
public BasePage loadUrl(String url) throws Exception {
driver.get(url);
return new BasePage(driver);
}
黄瓜步:
@Given("^User navigates to the \"([^\"]*)\" website$")
public void user_navigates_to_the_website(String url) throws Throwable {
BasePage basePage = new BasePage(driver);
basePage.loadUrl(url);
}
驱动工厂:
public WebDriver getDriver() {
try {
if(driver == null){
System.setProperty("webdriver.gecko.driver", Constant.GECKO_DRIVER_DIRECTORY);
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
basePage = PageFactory.initElements(driver, BasePage.class);
loginPage = PageFactory.initElements(driver, LoginPage.class);
}
} catch (Exception e) {
}
return driver;
}
新代码 - 驱动程序工厂: 使用 if 语句指向每种浏览器类型的 exe 文件:
public WebDriver getDriver() {
try {
ReadConfigFile file = new ReadConfigFile();
if (driver == null) {
if("chrome".equalsIgnoreCase(file.getBrowser())){
System.setProperty("webdriver.chrome.driver", Constant.CHROME_DRIVER_DIRECTORY);
driver = new ChromeDriver();
}
if("firefox".equalsIgnoreCase(file.getBrowser())){
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
System.setProperty("webdriver.gecko.driver", Constant.GECKO_DRIVER_DIRECTORY);
capabilities.setCapability("marionette", true);
driver = new FirefoxDriver(capabilities);
}
if("ie".equalsIgnoreCase(file.getBrowser())){
System.setProperty("webdriver.ie.driver", Constant.IE_DRIVER_DIRECTORY);
driver = new InternetExplorerDriver();
}
}
}
【问题讨论】:
-
您遇到的错误是什么?发布堆栈跟踪
-
-
您似乎没有正确初始化驱动程序。 nullpointer 错误与驱动程序初始化有关,请按照与 chrome 相同的步骤操作,因为您说 chrome 正在工作
-
@Trimantra 软件解决方案我使用了与 Chrome 完全相同的步骤非常奇怪为什么不工作
-
你能显示 chrome 的代码吗?
标签: selenium selenium-webdriver webdriver geckodriver