Java 如何在selenium webdriver的同一浏览器中继续运行测试

Java 如何在selenium webdriver的同一浏览器中继续运行测试,java,selenium-webdriver,Java,Selenium Webdriver,我是selenium webdriver的新手 在某些情况下,我的测试用例失败,我希望通过注释前面的代码,从发生问题的同一位置(即,不关闭浏览器)运行测试。如何在SeleniumWebDriver中实现这一点。(如从QTP中的步骤开始运行) 谁能给我指路吗 谢谢为了重用浏览器,您无法在每次测试中对其进行初始化,因此您需要使用一个单一模式,在该模式中您将拥有一个唯一的webdriver 因此,与其使用@before和@after子句来初始化和关闭浏览器,不如使用@beforeclass和@afte

我是selenium webdriver的新手

在某些情况下,我的测试用例失败,我希望通过注释前面的代码,从发生问题的同一位置(即,不关闭浏览器)运行测试。如何在SeleniumWebDriver中实现这一点。(如从QTP中的步骤开始运行)

谁能给我指路吗


谢谢

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

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


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

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

开始第一次测试时,请按照以下步骤进行:

staticwebdriver-driver=newfirefoxdriver();//可以是任何驱动程序();
这样,您调用的任何测试
driver.someFunction()close()
quit()
,code>就可以工作。

解决方法如下:


感谢@aimbire的回复,据我所知,假设iam在测试套件中有3个测试,如果在浏览器上执行某些操作后通过了第一个测试,则第二个测试将继续从当前浏览器运行,即不启动新浏览器。如果我们在测试套件之间声明这个[static WebDriver driver=new FirefoxDriver();],我从未尝试过,所以我不能向您保证。
WebDriver  driver=new RemoteWebDriver(new URL("http://localhost:7055/hub" DesiredCapabilities.firefox());
        driver.get("http://www.google.com");