繁体   English   中英

如何使用Java WebDriver中的线程运行firefox的两个实例

[英]How do you run two instances of firefox using threads in java webdriver

我是一个基本的Java用户,目前我正在尝试创建一个自动测试用例来测试我的电子邮件功能。 所以我想到的是:

  1. 该程序在Java中使用Selenium Webdriver,该程序创建了一个线程,该线程启动浏览器,转到Google电子邮件,创建测试电子邮件并将其发送到我的yahoo电子邮件帐户。 之后,它会无限期休眠,直到收到消息或信号以发送另一封电子邮件为止。
  2. 完成此操作后,正在创建另一个线程以转到yahoo电子邮件帐户并监视新的传入电子邮件。 一旦收到电子邮件,就会将消息或信号发送到第一个线程以发送另一封电子邮件。
  3. 整个过程总共重复两次,因此gmail和yahoo电子邮件之间将交换三封电子邮件。

到目前为止,代码是这样的。 我不太确定如何从这里开始。 更具体地说,我不确定如何在其中添加线程,以便两个实例可以同时运行。

import static org.junit.Assert.fail;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

import java.util.concurrent.TimeUnit;

public class multi_test {

    public WebDriver driver1;
    protected WebDriver driver2;
    public String baseUrl1;
    public String baseUrl2;
    protected StringBuffer verificationErrors = new StringBuffer();

    public class setup1 implements Runnable{
        public void run(){
            driver1.get(baseUrl1);
        }
    }

    public class setup2 implements Runnable{
        public void run(){
            driver2.get(baseUrl2);
        }
    }
    @Before
    public void setUp() throws Exception {
        driver1 = new FirefoxDriver();
        baseUrl1 = "http://www.yahoo.com";
        driver1.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        System.out.println(driver1);
        driver2 = new FirefoxDriver();
        baseUrl2 = "https://google.com";
        driver2.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @Test
    public void testing1() throws Exception {
        driver1.get(baseUrl1);
    }

    @After
    public void tearDown() throws Exception {
        //driver1.quit();
        //driver2.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
            fail(verificationErrorString);
        }
    }
}

为什么要使用线程? 更好地准备两个测试? 发送和接收? 一个发送邮件传递? 好,我们可以继续进行下一个接收者将等待一封电子邮件,例如在接下来的XX分钟左右检查30个间隔吗?

您可以在TestNG中运行它重复3次吗?

顺便说一句。 好帖子,为什么不自动化gmail :)))

https://groups.google.com/d/msg/selenium-users/8jR6Fw5ndxU/7peVDuzkNN4J

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM