java - 使用普通的 Selenium WebDriver 实例

标签 java selenium selenium-webdriver testng instance

我想通过扩展我的测试类以使用如下所示的基类,在我所有的 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 方法是static

解决方案 #1:使方法成为非静态的(这需要使 driver 变量也成为非静态的,或者使用 return Browser.getDriver(); )

public WebDriver getDriver() {
    return driver;
}

或者,使用Browser.getDriver调用getDriver方法

WebElement query = Browser.getDriver().findElement(By.name("q"));

关于java - 使用普通的 Selenium WebDriver 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20730665/

相关文章:

java - 使用 SHA-256 获取字符串后结果错误

java - JComboBox 与其他 JComboBoxes ActionListener 交互

Java selenium 单击元素不起作用

python - Selenium Web 在动态内容和隐藏数据表上使用 Beautiful Soup 进行抓取

javascript - Selenium WebDriver : clicking a visible button inside a row of a table

java - 无法实例化类

java - JPanels 未添加到 JTabbedPane

java - Selenium Webdriver 在执行测试脚本期间非常不一致

java - textToBePresentInElement() 不适用于确切的文本

java - Java 标准集合中的最大优先级队列。有吗?