如何使用Selenium Webdriver在不同的浏览器中运行不同的方法?

时间:2014-06-14 12:11:04

标签: java selenium

我有一个测试用例,其中有3个方法

 Class
 {
   Method1();
   Method2();
   Method3()
 }

现在,我想在IE中运行Method1(),在Chrome中运行Method2(),在Chrome中运行Method3()。我写了代码,它工作得很好。唯一的问题是它在Console中出现错误“org.openqa.selenium.remote.SessionNotFoundException:会话ID为空。在调用quit()之后使用WebDriver?”

在Method1()完成后,我退出了像

这样的驱动程序
 driver.quit();
 driver=null;
 driver = new FirefoxDriver();

同样适用于Chrome,也是在Method2()完成后。

有人可以指导我为什么收到此消息以及解决方案是什么?

我不想使用Selenium网格。感谢

1 个答案:

答案 0 :(得分:0)

根据您的解释,这是我所理解的: -

  1. Method1()适用于IE
  2. Method2()适用于FF
  3. Method3()适用于Chrome
  4. 为什么要使用新的WebDriver实例化结束代码?相反,当你创建一个像下面这样的结构时,它会更有意义。

    Class {
        WebDriver driver;
        Method1() {
            driver = new InternetExplorerDriver();
            //code for IE goes here
            driver.quit();
        }
    
        Method2() {
            driver = new FirefoxDriver();
            //code for FF goes here
            driver.quit();
        }
    
        Method3() {
            driver = new ChromeDriver();
            //code for chrome goes here
            driver.quit();
        }    
    }
    

    您的要求似乎与众不同。如果您想在不同的浏览器中测试一些代码,最好使用TestNG / JUnit等框架,或者为不同的浏览器指定不同的测试。

    希望这会对你有所帮助。