我阅读了Selenium Jupiter手册,但仍然不知道如何设置多个 Selenium Jupiter中的浏览器可以在每个浏览器中运行每个测试。
是否应为此目的使用测试模板?
再次,我没有看到如何在Selenium Jupiter中做到这一点的例子?
p.s。在Selenium Grid上使用RemoteDrivers的示例。
这是我的尝试:
公共类BaseTestWithRemoteDrivers {
@RegisterExtension
static SeleniumExtension extension = new SeleniumExtension();
@BeforeAll
public static void setupAll() {
extension.getConfig().setSeleniumServerUrl("http://localhost:4444/wd/hub");
Browser chrome = BrowserBuilder.chrome().build();
Browser firefox = BrowserBuilder.firefox().build();
extension.addBrowsers(chrome, firefox);
}
@Test
public void testWithBrowser(WebDriver driver) {
driver.get("https://www.google.com");
}
@AfterAll
public static void tearDownAll(WebDriver driver) {
driver.quit();
}
不幸的是,只有Chrome浏览器会打开。
更新:我还发现有一条消息说:
找不到上下文ID的浏览器列表。不确定是否需要设置浏览器列表。
答案 0 :(得分:1)
到目前为止,除明确将浏览器类型放入mvn命令(如下所示)外,我没有找到多浏览器支持:
mvn verify -Dtest = BaseTest
-Dsel.jup.selenium.server.url = http:// localhost:4444 / wd / hub
-Dsel.jup.default.browser = chrome
-Dsel.jup.default.version = 80.0.3987.106
@ExtendWith(SeleniumExtension.class)
public class BaseTest {
@Test
public void testNumber1(RemoteWebDriver driver) throws {
driver.get("https://www.google.com/");
}
@AfterAll()
public static void tearDown(RemoteWebDriver driver) {
driver.quit();
}
}
更新:
我也想出了使用测试模板的方法。
下面是工作示例:
public class MultiBrowserTestTemplate {
@RegisterExtension
static SeleniumExtension extension = new SeleniumExtension();
@BeforeAll
static void setup() {
String browsersList = System.getProperty("prop.browsers.list");
List<String> browsers = Arrays.asList(browsersList.split(","));
if (browsers.contains("chrome")) {
extension.addBrowsers(BrowserBuilder.chrome().version("80.0.3987.106").build());
}
if (browsers.contains("firefox")) {
extension.addBrowsers(BrowserBuilder.firefox().version("73.0").build());
}
}
}
public class MultiBrowserDemoTest extends MultiBrowserTestTemplate {
@TestTemplate
public void testInMultipleBrowsers(WebDriver driver) {
driver.get("https://www.google.com/");
WebElement search = driver.findElement(By.name("q"));
search.sendKeys("JUnit5 extensions");
search.submit();
}
maven命令如下:
MVN验证-DMultiBrowserDemoTest
-Dsel.jup.selenium.server.url = http:// localhost:4444 / wd / hub
-Dprop.browsers.list = chrome,firefox