【问题标题】:Automating switching browsers when running Selenium-Java tests运行 Selenium-Java 测试时自动切换浏览器
【发布时间】:2012-07-02 15:30:43
【问题描述】:

我目前正在开发一个使用 Java、Selenium 和 Testng 的项目。我的总体目标是在不同的网络浏览器上测试网页的功能。我的 Selenium 代码正常工作,并且能够在 Chrome 和 Firefox 上运行测试。但是,我必须手动更改代码才能切换浏览器。我通过注释掉 driver = new ChromeDriver(); 来做到这一点 我想编辑我的代码,以便测试在 Firefox 中运行,并在测试完成后在 Chrome 中启动测试。有人可以指导我正确的方向吗?

这是我的代码的示例:

WebDriver driver = null;
Selenium selenium = null;


@BeforeSuite
public void setup() throws Exception {

    ///    Chrome Driver  ///
    System.setProperty("webdriver.chrome.driver", "mac/chromedriver.exe");
    //driver = new ChromeDriver();


    ///    Firefox Driver  ///
    driver = new FirefoxDriver();


}


@Test
public void testGoogle() throws Exception {

selenium = new WebDriverBackedSelenium(driver,"URL");

【问题讨论】:

    标签: java selenium webdriver


    【解决方案1】:

    可能有很多方法可以实现这一点。

    在设置中,您可以读取一个属性,并在此基础上实例化正确的驱动程序。

    String driverType = System.getProperty("driverType");
    if ("firefox".equals(driverType))
       driver = new FirefoxDriver().....
    

    您可以运行两次测试,一次使用 firefox 属性,然后使用 chrome 属性。

    另一种选择是将所有测试保留在一个类中。然后通过两个类扩展这个类,一个用于 Firefox 设置,另一个用于 chrome 设置。然后,您可以在一个套件中运行两个子类测试。他们会一个接一个地跑。

    【讨论】:

    • 感谢您这么快回复我。我使用了您的第一个建议并添加了两个 if 语句(一个用于 firefox,另一个用于 Chrome),我收到此错误:正在测试... FAILED: testGoogle java.lang.IllegalStateException: Driver instance must support JS.
    猜你喜欢
    • 2010-09-17
    • 2011-08-07
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多