【问题标题】:How to continue to run Tests in same browser in selenium webdriver如何在 selenium webdriver 的同一浏览器中继续运行测试
【发布时间】:2013-05-20 10:58:12
【问题描述】:

我是 selenium webdriver 的新手,

在某些情况下,我的测试用例失败了,我想通过注释前面的代码从问题发生的同一位置(即不关闭浏览器)运行测试。如何在 selenium webdriver 中做到这一点。 (就像在 QTP 中从 step 运行)

谁能指导我。

谢谢

【问题讨论】:

    标签: java selenium-webdriver


    【解决方案1】:

    为了重用浏览器,您不能在每次测试中都对其进行初始化,因此您需要使用单例模式,在该模式中您将拥有一个唯一的 webdriver。

    因此,与其使用@before@after 子句来初始化和关闭该浏览器,不如使用@beforeclass@afterclass。然后,该类中的每个测试方法都将使用相同的浏览器,从上一个测试离开它的确切位置开始。

    但这会发生在同一个测试周期中。据我所知,不可能使用以不同周期启动或手动打开的浏览器实例。

    【讨论】:

      【解决方案2】:

      我知道有一种方法,但如果您决定并行运行相同的测试,这可能会导致一些问题。我建议你研究一下static 参数,看看它是否适合你。

      当您开始第一次测试时,请按以下步骤操作:

      static WebDriver driver = new FirefoxDriver(); // Could be any Driver();
      

      这样,您调用driver.someFunction(); 的任何测试都将起作用,只要您在到达最后一个测试之前不调用close()quit()

      【讨论】:

      • 感谢@aimbire 的回复,我的理解是,假设我在测试套件中有 3 个测试,如果在浏览器上执行一些操作后第一个测试通过,那么第二个测试将继续从当前浏览器,即不启动新浏览器。如果我们声明这个 [static WebDriver driver = new FirefoxDriver(); ]
      • 在测试套件之间我从未尝试过,所以我不能保证。
      【解决方案3】:

      在此处找到解决方法:https://code.google.com/p/selenium/issues/detail?id=3927

      WebDriver  driver=new RemoteWebDriver(new URL("http://localhost:7055/hub" DesiredCapabilities.firefox());
              driver.get("http://www.google.com");
      

      【讨论】:

        猜你喜欢
        • 2012-12-04
        • 1970-01-01
        • 2012-04-03
        • 1970-01-01
        • 2013-08-23
        • 1970-01-01
        • 2014-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多