Java/ Selenium : Class containing methods for each Browser

标签 java selenium selenium-webdriver

在方法中包含所有浏览器的类:

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/

相关文章:

java - Python:Java子进程和Python监听器之间的多线程?

java - 如何让 JTextArea 消耗其关键事件?

java - 是否可以在 Web 应用程序中使用 SQLite 数据库

selenium - 在 Linux 中禁用 Firefox 自动更新

javascript - Chrome 允许通过 WebDriver 访问不安全的页面

java - 父子项目maven

java - 使用 selenium 进行 Maven 范围测试

javascript - 检查元素是否未显示 - WebDriverJS

python - 类型错误 : Failed to execute 'evaluate' on 'Document' : The result is not a node set,,因此无法通过 Selenium 使用 Xpath 进行转换

python - 使用 selenium webdriver_manager 在 unix 上打开 Chrome 浏览器时出错