【发布时间】:2013-05-20 10:58:12
【问题描述】:
我是 selenium webdriver 的新手,
在某些情况下,我的测试用例失败了,我想通过注释前面的代码从问题发生的同一位置(即不关闭浏览器)运行测试。如何在 selenium webdriver 中做到这一点。 (就像在 QTP 中从 step 运行)
谁能指导我。
谢谢
【问题讨论】:
我是 selenium webdriver 的新手,
在某些情况下,我的测试用例失败了,我想通过注释前面的代码从问题发生的同一位置(即不关闭浏览器)运行测试。如何在 selenium webdriver 中做到这一点。 (就像在 QTP 中从 step 运行)
谁能指导我。
谢谢
【问题讨论】:
为了重用浏览器,您不能在每次测试中都对其进行初始化,因此您需要使用单例模式,在该模式中您将拥有一个唯一的 webdriver。
因此,与其使用@before 和@after 子句来初始化和关闭该浏览器,不如使用@beforeclass 和@afterclass。然后,该类中的每个测试方法都将使用相同的浏览器,从上一个测试离开它的确切位置开始。
但这会发生在同一个测试周期中。据我所知,不可能使用以不同周期启动或手动打开的浏览器实例。
【讨论】:
我知道有一种方法,但如果您决定并行运行相同的测试,这可能会导致一些问题。我建议你研究一下static 参数,看看它是否适合你。
当您开始第一次测试时,请按以下步骤操作:
static WebDriver driver = new FirefoxDriver(); // Could be any Driver();
这样,您调用driver.someFunction(); 的任何测试都将起作用,只要您在到达最后一个测试之前不调用close() 或quit()。
【讨论】:
在此处找到解决方法: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");
【讨论】: