У меня есть класс Java, который открывает два браузера Chrome и ищет «тест 1» и «тест 2» соответственно. Однако, как только откроются оба браузера, только один браузер со страницей Google выполнит поиск «test 1 test 2».
Я полагаю, что это может быть связано с тем, что я вызываю драйвер = новый 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. Однако только один браузер будет искать «тест 1 тест 2». Любая помощь приветствуется! Если возможно, я все же хотел бы использовать свой родительский класс «Методы», поскольку он содержит множество методов, которые я использую для других моих реальных тестовых случаев.
Заранее спасибо.