Как передать новый экземпляр FirefoxDriver в каждый новый поток? - PullRequest
0 голосов
/ 20 августа 2010
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, выполняющих одни и те же тесты.

Ответы [ 2 ]

1 голос
/ 20 августа 2010

run() метод в потоке не имеет параметров.

Вы можете сделать это используя 'setters' в вашей реализации потока.При этом ваш код должен выглядеть следующим образом -

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

ваш тестер будет иметь переменные экземпляра browser1 и browser2.Или вы можете также установить browser1 и browser2 через конструктор Tester.

0 голосов
/ 20 августа 2010

Добавить конструктор, который принимает браузер в качестве аргумента.Сохраните ссылку в приватном поле, и вы можете использовать Браузер в методе запуска:

public class Tester implements Runnable {
    private WebDriver browser;

    public Tester(WebDriver browser) {
        this.browser = browser;
    }

    public static void main(String[] args) {    

      Thread worker1 = new Thread(new Tester(new FirefoxDriver(firefoxProfile)));
      Thread worker2 = new Thread(new Tester(new FirefoxDriver(firefoxProfile)));

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

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...