Selenium-无法访问页面对象模型属性

问题描述 投票:0回答:1

我正在使用Boni Garcia的“ webdrivermanager”。https://github.com/bonigarcia/webdrivermanager/blob/master/README.md

我的问题:我无法将已初始化的驱动程序属性从“ BaseSwag”“获取”到“ home.page”,以启动Chrome并转到所需的URL。这是我的设置,如下所示。我该怎么做才能解决此问题?

src / main / java / swaglogin / BaseSwag

package swaggerLogin;

import io.github.bonigarcia.wdm.WebDriverManager;
import io.github.bonigarcia.wdm.managers.ChromeDriverManager;
import io.github.bonigarcia.wdm.managers.FirefoxDriverManager;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class BaseSwag {

  public WebDriverManager driver;
  public Properties prop;

  public WebDriverManager initializeDriver() throws IOException {
    // Create global property file
    prop = new Properties();
    FileInputStream fis = new FileInputStream(
        "//Users/rad/WebTest/src/main/resources/data.properties");

    prop.load(fis);
    String browserName = prop.getProperty("browser");
    System.out.println(browserName);

    if (browserName.equals("chrome")) {
      WebDriverManager.chromedriver().setup();
      driver = new ChromeDriverManager();
    } else if (browserName.equals("firefox")) {
      WebDriverManager.firefoxdriver().setup();
      driver = new FirefoxDriverManager();
    }
    return driver;
  }
}

resources / data.properties

url = http://qaclickacademy.com/
apiKey = 1234563333random
browser = chrome

test / java / home.page

package home.page;

import java.io.IOException;
import org.testng.annotations.BeforeTest;
import swaggerLogin.BaseSwag;

public class SwaggerLoginDev extends BaseSwag {

  @BeforeTest

  public void initialize() throws IOException {
    driver = initializeDriver();
    driver.get(prop.getProperty("url"));

  }

}
selenium intellij-idea pageobjects webautomation
1个回答
0
投票

您的driver变量应该是WebDriver的实例,而不是WebDriverManager

您可以将WebDriverManager视为实用程序类,该实用程序类仅管理(下载,设置等)用于不同浏览器的驱动程序。为所需的浏览器类型调用.setup()方法后,您可以为其创建一个实例:

public class BaseSwag {

  public WebDriver driver;
  public Properties prop;

  public WebDriver initializeDriver() throws IOException {
    // Create global property file
    prop = new Properties();
    FileInputStream fis = new FileInputStream(
        "//Users/rad/WebTest/src/main/resources/data.properties");

    prop.load(fis);
    String browserName = prop.getProperty("browser");
    System.out.println(browserName);

    if (browserName.equals("chrome")) {
      WebDriverManager.chromedriver().setup();
      driver = new ChromeDriver();
    } else if (browserName.equals("firefox")) {
      WebDriverManager.firefoxdriver().setup();
      driver = new FirefoxDriver();
    }
    return driver;
  }
}

现在,您应该可以在驱动程序上调用.get(...)方法。

© www.soinside.com 2019 - 2024. All rights reserved.