美文网首页
selenium启动浏览器时使用服务启动

selenium启动浏览器时使用服务启动

作者: tyoko | 来源:发表于2017-08-26 00:48 被阅读0次

官方文档中说为了避免在每次实例化时都启动ChromeDriver,可以使用RemoteWebDriver,通过ChromeDriverService去控制,同时给出了例子,这样可以减少启动server,减少内存的开销


image.png

public class StartUpDemo {
    @Test
    public void startServer(){
//        声明一个DriverServer,只启动一次server,避免多次启动server,节省内存
        ChromeDriverService service=new ChromeDriverService.Builder()
                .usingDriverExecutable(new File("./driver/chromedriver"))
                .usingAnyFreePort().build();
        try {
            service.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
        URL url = service.getUrl();
        openUrl(url,"http://www.baidu.com");
        openUrl(url,"http://www.qq.com");

        service.stop();
    }
    public void openUrl(URL url,String urlPath){
        WebDriver driver=new RemoteWebDriver(url,DesiredCapabilities.chrome());
        driver.get(urlPath);
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        driver.close();

    }
}

只启动了一次server


image.png

普通的做法会多次启动server

@Test
    public void normal(){
        openUrlNormal("http://www.baidu.com");
        openUrlNormal("http://www.qq.com");
    }
    public void openUrlNormal(String urlPath){
        System.setProperty("webdriver.chrome.driver","./driver/chromedriver");
        WebDriver driver=new ChromeDriver();

        driver.get(urlPath);
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        driver.close();

    }
image.png

相关文章

网友评论

      本文标题:selenium启动浏览器时使用服务启动

      本文链接:https://www.haomeiwen.com/subject/nttmdxtx.html