【发布时间】:2019-01-11 17:37:10
【问题描述】:
我有一个 java 类,可以打开两个 Chrome 浏览器,分别搜索“test 1”和“test 2”。但是,一旦两个浏览器都打开,只有一个带有 google 页面的浏览器会搜索“test 1 test 2”。
我相信这个问题可能是因为我从父类调用 driver = new WebDriver。但是,我不确定如何解决此问题。
这是我尝试并行运行的两种方法。
package webDrivertests;
public class googleTestClass extends Methods{
@Test
public void test1() throws InterruptedException {
googleTestClass object1;
object1 = new googleTestClass();
object1.launchBrowser();
object1.goToURL("https://www.google.com");
object1.enterValue("name","q","google test 1");
driver.quit();
}
@Test
public void test2() throws InterruptedException {
googleTestClass object2;
object2 = new googleTestClass();
object2.launchBrowser();
object2.goToURL("https://www.google.com");
object2.enterValue("name","q","google test 2");
driver.quit();
}
}
这是我用来调用它们的 xml 文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="methods">
<test thread-count="2" name="Test" parallel="methods">
<classes>
<class name="webDrivertests.googleTestClass"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
包含驱动的父方法
package webDrivertests;
// import statements
public class Methods {
public static WebDriver driver;
public void launchBrowser() {
System.setProperty("webdriver.chrome.driver","C:\\chromedriver_win32\\chromedriver.exe");
System.setProperty("webdriver.chrome.args", "--disable-logging");
System.setProperty("webdriver.chrome.silentOutput", "true");
driver = new ChromeDriver();
}
public void goToURL(String url) {
driver.get(url);
}
public void enterValue(String htmltype, String identifier, String value) throws InterruptedException {
if (htmltype == "id") {
WebElement element = driver.findElement(By.id(identifier));
element.clear();
element.sendKeys(value);
element.submit();
}
if (htmltype =="name") {
WebElement element = driver.findElement(By.name(identifier));
element.clear();
element.sendKeys(value);
element.submit();
}
Thread.sleep(3000);
}
}
当前结果:打开两个浏览器,每个浏览器都访问 google.com。然而,只有一个浏览器会搜索“test 1 test 2”。任何帮助表示赞赏!如果可能的话,我仍然想使用我的父类“方法”,因为它包含很多我用于其他真实测试用例的方法。
提前致谢。
【问题讨论】:
-
请编辑您的问题并向我们展示
googleTestClass的课程是什么样的? -
更新了!感谢您的建议。
-
Methods类是什么样的?请帮助提供所有信息,以便我们帮助您解决问题。 -
我已更新为包含我的整个方法类的缩短版本。删除了 googleTestClass 中没有提到的一些方法
标签: java selenium parallel-processing testng