lu372 发表于 2015-12-1 19:59:16

请教webdriver @test前关闭所有浏览器的方法

如使用webdriver启动firefox前,要关闭所有的firefox。写在@Before里面,请问怎么写?


@Before
public void setUp() throws Exception {
        System.setProperty("webdriver.firefox.bin", "D:/Program Files/Mozilla firefox/firefox.exe");
        driver = new FirefoxDriver();
         baseUrl = "https://www.baidu.com/";

         ……
@Test
……

joykao 发表于 2015-12-2 10:08:46

你要关闭所有已经开的Firefox的话要用关闭进程的方法,这个不用selenium去做,如果你的每个浏览器都是selenium打开的你可以用driver.close()方法在每个测试运行完就关掉,这样就不会积累很多的firefox进程了。。。。
public static boolean isProcessRunging(String serviceName) throws Exception {

    Process p = Runtime.getRuntime().exec(TASKLIST);
    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String line;
    while ((line = reader.readLine()) != null) {
      if (line.toUpperCase().contains(serviceName.toUpperCase())) {
      return true;
      }
    }

    return false;

}

public static void killProcess(String serviceName) {
    try {
      while (isProcessRunging(serviceName)) {
      Runtime.getRuntime().exec(KILL + serviceName.toUpperCase());
      }
    } catch (Exception e) {
      e.printStackTrace();
    }

}
页: [1]
查看完整版本: 请教webdriver @test前关闭所有浏览器的方法