我正在使用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"));
}
}
您的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(...)
方法。