我希望在我的所有TestNG测试中使用一个通用的WebDriver实例,方法是扩展我的测试类以使用如下所示的基类,但它似乎不起作用:
public class browser {
private static WebDriver driver = new FirefoxDriver();
public static WebDriver getDriver()
{
return driver;
}
public static void open(String url)
{
driver.get(url);
}
public static void close()
{
driver.close();
}
}
我想在我的测试类中使用WebDriver,如下所示,但是我收到错误消息:
对于GoogleTest类型,方法getDriver()未定义:
public class GoogleTest extends browser
{
@Test
public void GoogleSearch() {
WebElement query = getDriver().findElement(By.name("q"));
// Enter something to search for
query.sendKeys("Selenium");
// Now submit the form
query.submit();
// Google's search is rendered dynamically with JavaScript.
// Wait for the page to load, timeout after 5 seconds
webdriverwait wait = new webdriverwait(getDriver(), 30);
// wait.Until((d) => { return d.Title.StartsWith("selenium"); });
//Check that the Title is what we are expecting
assertEquals("selenium - Google Search", getDriver().getTitle().toString());
}
}
解决方法:
问题是你的getDriver方法是静态的.
解决方案#1:使方法非静态(这将需要使驱动程序变量非静态,或使用返回browser.getDriver();)
public WebDriver getDriver() {
return driver;
}
或者,使用browser.getDriver调用getDriver方法
WebElement query = browser.getDriver().findElement(By.name("q"));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。