使用 Selenium Webdriver 并行测试多个浏览器
Multiple Browser in parallel test using Selenium Webdriver
我 运行 selenium webdriver 中的并行多浏览器测试。当它第一次启动时,它 运行s 在 chrome 和 firefox 中。
从第二次开始,两个浏览器都启动了上述 URL。然后进一步的操作只发生在 firefox 中。 chrome 浏览器只是显示页面的 url。
Java代码:
public class Browser {
static WebDriver driver;
@BeforeTest
@Parameters("browser")
public void setup(String browserName) throws Exception{
if (browserName.equalsIgnoreCase("Firefox")) {
driver = new FirefoxDriver();
}
else if (browserName.equalsIgnoreCase("Chrome")) {
System.setProperty("webdriver.chrome.driver",
"C:/Users/MSTEMP/Downloads/Softwares/chromedriver_win32/chromedriver.exe");
driver = new ChromeDriver();
}
else if (browserName.equalsIgnoreCase("ie")) {
System.setProperty("webdriver.ie.driver",
"C:/Users/MSTEMP/Downloads/Softwares/IEDriverServer/IEDriverServer.exe");
driver = new InternetExplorerDriver();
}
else {
throw new Exception("Browser is not correct");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@Test
public void testParameterWithXML() throws InterruptedException{
driver.get("https://www.google.co.in/");
System.out.println(""+driver.toString());
driver.findElement(By.name("q")).sendKeys("login");
}
}
Testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Automationsuite" parallel="tests">
<test name="ChromeTest">
<parameter name ="browser" value="Chrome"/>
<classes>
<class name="browser.Browser" />
</classes>
</test>
<test name="FirefoxTest">
<parameter name ="browser" value="Firefox"/>
<classes>
<class name="browser.Browser" />
</classes>
</test>
</suite>
控制台:
C:\Users\MSTEMP\workspace\CrossBrowser\src\browser.xml
Starting ChromeDriver 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4) on port 16536
Only local connections are allowed.
FirefoxDriver: firefox on WINDOWS (e787139a-cce5-4406-9eff-c856151a9b20)
FirefoxDriver: firefox on WINDOWS (e787139a-cce5-4406-9eff-c856151a9b20)
===============================================
Automationsuite Total tests run: 2, Failures: 0, Skips: 0
===============================================
系统规格:
OS: Windows 7 64 位
Java: Java 8
硒: 2.53.0
引导我伸出援手
我认为您需要将 driver 设为成员变量,而不是非静态变量。
我 运行 selenium webdriver 中的并行多浏览器测试。当它第一次启动时,它 运行s 在 chrome 和 firefox 中。
从第二次开始,两个浏览器都启动了上述 URL。然后进一步的操作只发生在 firefox 中。 chrome 浏览器只是显示页面的 url。
Java代码:
public class Browser {
static WebDriver driver;
@BeforeTest
@Parameters("browser")
public void setup(String browserName) throws Exception{
if (browserName.equalsIgnoreCase("Firefox")) {
driver = new FirefoxDriver();
}
else if (browserName.equalsIgnoreCase("Chrome")) {
System.setProperty("webdriver.chrome.driver",
"C:/Users/MSTEMP/Downloads/Softwares/chromedriver_win32/chromedriver.exe");
driver = new ChromeDriver();
}
else if (browserName.equalsIgnoreCase("ie")) {
System.setProperty("webdriver.ie.driver",
"C:/Users/MSTEMP/Downloads/Softwares/IEDriverServer/IEDriverServer.exe");
driver = new InternetExplorerDriver();
}
else {
throw new Exception("Browser is not correct");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@Test
public void testParameterWithXML() throws InterruptedException{
driver.get("https://www.google.co.in/");
System.out.println(""+driver.toString());
driver.findElement(By.name("q")).sendKeys("login");
}
}
Testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Automationsuite" parallel="tests">
<test name="ChromeTest">
<parameter name ="browser" value="Chrome"/>
<classes>
<class name="browser.Browser" />
</classes>
</test>
<test name="FirefoxTest">
<parameter name ="browser" value="Firefox"/>
<classes>
<class name="browser.Browser" />
</classes>
</test>
</suite>
控制台: C:\Users\MSTEMP\workspace\CrossBrowser\src\browser.xml
Starting ChromeDriver 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4) on port 16536
Only local connections are allowed.
FirefoxDriver: firefox on WINDOWS (e787139a-cce5-4406-9eff-c856151a9b20)
FirefoxDriver: firefox on WINDOWS (e787139a-cce5-4406-9eff-c856151a9b20)
===============================================
Automationsuite Total tests run: 2, Failures: 0, Skips: 0
===============================================
系统规格:
OS: Windows 7 64 位
Java: Java 8
硒: 2.53.0
引导我伸出援手
我认为您需要将 driver 设为成员变量,而不是非静态变量。