gpt4 book ai didi

java - 如何使用 selenium 和 junit 测试多个浏览器(版本)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:43 25 4
gpt4 key购买 nike

我刚刚发现了 selenium - 一个很棒的工具!
我计划运行/使用 selenium-ide 生成的 junit4 代码。但我需要它与许多浏览器/网络驱动程序一起运行。这个用例有 junit/java 模式吗?我的第一个想法是使用 @RunWith(Parameterized.class) 并提供一个 WebDrivers 列表(该类的参数 - 可能作为列出浏览器和版本的外部文件提供?!)。这是一个好主意吗?是否可以提供一个集中的 @Parameters -方法供我所有的 Selenium 测试使用?

有哪些替代方案?

可能可以更改 Selenium 导出的“格式”以最大程度地减少手动更改?

最佳答案

好吧,我确实需要不时切换驱动程序,所以我这样做了:

我在我自己的类中初始化与 selenium 相关的东西——通过应用程序的名称调用,驱动程序由 getter 处理。调用我的类构造函数时,我使用枚举类型的驱动程序进行初始化:

 private WebDriver driver;
public TestUI(Environment.DriverToUse drv){
switch (drv){
case CHROME:{
ChromeDriverService service = ChromeDriverService.createDefaultService();
File file = new File(TestUI.class.getResource("/chromedriver.exe").toURI());
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, file.getAbsolutePath());
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver(service,options);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
break;
}
case FIREFOX:{
FirefoxProfile ffProfile = new FirefoxProfile();
ffProfile.setPreference("browser.safebrowsing.malware.enabled", false);
driver = new FirefoxDriver(ffProfile);
driver.manage().window().setPosition(new Point(0, 0));
java.awt.Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension dim = new Dimension((int) screenSize.getWidth(), (int) screenSize.getHeight());
driver.manage().window().setSize(dim);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
break;

}

public WebDriver getDriver(){
return driver;
}

当然我的 Environment 类看起来像这样

public class Environment {
public enum DriverToUse {FIREFOX, CHROME};
// .. and some other stuff, because I need to test on different environments, so I store here Environment URL for example

我的测试类看起来像这样

@Before
public static final Environment.DriverToUse USED_DRIVER = Environment.DriverToUse.FIREFOX;

@Test
public void testVersionNumber() throws Exception{

TestUI testUI= new TestUI(USED_DRIVER);
WebElement version = testUI.getDriver().findElement(By.id("the Id of element"));
version.click();
//...
}

关于java - 如何使用 selenium 和 junit 测试多个浏览器(版本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com