java - 如何将 FirefoxDriver 的新实例传递给每个新线程?

标签 java webdriver

public class Tester implements Runnable {
    public Tester() {
        // Init WebDriver
        FirefoxProfile firefoxProfile = new FirefoxProfile();
        WebDriver browser1 = new FirefoxDriver(firefoxProfile);
        WebDriver browser2 = new FirefoxDriver(firefoxProfile);
    }

    public static void main(String[] args) {    

        Runnable tester = new Tester();
        Thread worker1 = new Thread(tester);
        Thread worker2 = new Thread(tester);

        worker1.start();
        worker2.start();            
    }

    public void run(WebDriver driver) {
        login(driver, "username", "password", "http://someurl.com/login");
    }

}

我试图将驱动程序参数传递给 run() 方法,但它需要参数吗?我在哪里传递 browser1 和 browser 2 ?

我的最终目标是让多个 Firefox 浏览器实例运行相同的测试。

最佳答案

线程中的

run()方法没有任何参数。

您可以在线程的实现上使用“setters”来完成此操作。这样你的代码应该看起来像 -

   Tester tester = new Tester();
   tester.setBrowser1(new FirefoxDriver( ....
   tester.setBrowser2(new FirefoxDriver( ....
   Thread worker2 = new Thread(tester);

您的测试器将有 browser1 和 browser2 作为实例变量。或者您也可以通过Tester的构造函数设置browser1和browser2。

关于java - 如何将 FirefoxDriver 的新实例传递给每个新线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3528536/

相关文章:

java - 如何在不更新旧记录的情况下使用 Hibernate session.save() 插入/保存对象

java - 无法让 MappedSuperClass 抽象实体与 Spring Boot 和 JPA 一起使用

java - 当打开 mcafee 防病毒软件时,使用 Java 的 Webdriver 脚本未运行

java - TestNG/Webdriver/Java - 通过注释传递参数?

python - WebDriverWait 多个条件(或逻辑评估)

java - 将动态数据源路由与 spring-data-rest 相结合

java - 为什么我们可以创建通用模板的新实例而不是 Java 中的通用类型?

java - 学习如何设计用户访问控制的资源?

java - Selenium : Handling Loading screens obscuring the web elements.(Java)

javascript - 在执行其余测试时保持 NodeJs 服务器运行