在方法中包含所有浏览器的类:
public class OpenBrowser {
public static void firefox() {
WebDriver driver = new FirefoxDriver();
}
public static void chrome() {
WebDriver driver = new ChromeDriver();
}
}
方法中包含所有环境的类:
public class OpenSite {
public static void stage(WebDriver driver) {
driver.get("stagelink.com");
}
public static void dev(WebDriver driver) {
driver.get("devlink.com");
}
}
包含页面对象的类:
public class HomePage {
private static WebElement element = null;
public static WebElement object1(WebDriver driver) {
element = driver.findElement(By.linkText("object1"));
return element;
}
}
包含实际测试的类
public class Test {
public static void TC1(WebDriver driver) {
HomePage.object1(driver).click();
}
}
主类
public class AllTests {
public static void main(String[] args){
OpenBrowser.chrome();
OpenSite.dev(driver);
Test.TC1(driver);
}
}
我对 JAVA 和 selenium 的所有东西都相当陌生,我一直在尝试建立一些基本测试并尽可能地组织它们。一切都很顺利,直到我尝试创建一个包含所有浏览器的方法的类,然后根据偏好在 Main 中调用它们。 问题是我不确定如何从 OpenBrowser.java 导入 main 中的驱动程序,因为“driver”无法再解析,因为它是在其他地方创建的。
*我知道网上的人建议使用像 Junit 或 Testng 这样的测试框架,但我觉得它们目前对我来说有点先进,如果可能的话,我更喜欢这样做。 **此外,我知道在不同的浏览器中执行相同的测试实际上是不可能的,因为事情可能会出错,但我目前正在测试的环境相当基本,我想至少将其作为练习。
谢谢!
最佳答案
将 openbrowser 更改为:
public class OpenBrowser {
public static WebDriver firefox() {
return new FirefoxDriver();
}
public static WebDriver chrome() {
return new ChromeDriver();
}
}
然后在所有测试中
public class AllTests {
public static void main(String[] args){
WebDriver driver = OpenBrowser.chrome();
OpenSite.dev(driver);
Test.TC1(driver);
}
}
关于Java/ Selenium : Class containing methods for each Browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47098613/