在stepdefs

时间:2017-06-05 14:21:07

标签: java selenium selenium-iedriver

我遇到了Java / Selenium的问题,我用这行创建了一个IE驱动程序:

driver = new InternetExplorerDriver(功能)

然后我在第一步def中使用driver.get(" somepage")引用它。这很好用。然后我单击一个按钮并移动到另一个页面,该页面工作正常(浏览器移动页面)。但是,在我的第二步定义中,我试图这样做:

String test = driver.getCurrentUrl();
System.out.println(test);
assert(test.equals(url));

IntelliJ只是一直在勾选,执行永远不会完成。我想一旦我离开第一页,它就不会识别我在第一步def中创建的网页驱动程序实例,而且我无法引用页面上的任何元素。是否缺少将webdriver实例从一个stepdef传递到另一个stepdef所需的任何内容,或者默认情况下它是否应该是普遍可访问的?我在代码中没有做任何事情来杀死实例。提前谢谢。

所以在src \ main \ java \ domain \ DriverManager中,我有:

public void openBrowser() {

    DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
    capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
    System.setProperty("webdriver.ie.driver", "C:\\SeleniumFiles\\IEDriverServer.exe");
    /*
    Create the ie instance and navigate to page
     */
    driver = new InternetExplorerDriver(capabilities);
    //driver.get("https://conditions-test.hca.local/home");
}

然后在我的stepdef中,我引用了webdriver实例:

@Given("^I navigate to the conditions home page$")
public void navigateHome()  {
    driver.get("www.google.com");
    System.out.println("Logging on to google as Joe Bloggs");
    String test = driver.getCurrentUrl();
    assert(test.equals("www.google.com"));
}

失败的部分如下。这是一个单独的步骤defs文件到上面的参考:

@Then("^I should be on the (.*) page$")
public void checkURL(String url) {
    String test = driver.getCurrentUrl();
    System.out.println(test) 
    System.out.println(test);
    assert(test.equals(url));
} 

转轮文件只是在左下角勾选,但我最终(半小时后左右!)得到此错误:

org.openqa.selenium.NoSuchWindowException:无法获取浏览器(警告:服务器未提供任何堆栈跟踪信息)

0 个答案:

没有答案