繁体   English   中英

Selenium并行运行多个浏览器实例

[英]Selenium Run multiple browser instances parallely

       if (platform != null) {
                        for (final String p : platform) {
                            log.info("Platform " + p);
                            executorService.submit(new Runnable() {

                                @Override
                                public void run() {
                                    // TODO Auto-generated method stub
                                    try {
                                        runService(p, config, url, title, report);
                                    } catch (Exception e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                }
                            });

                        }

                        executorService.shutdown();
                        executorService.awaitTermination(Long.MAX_VALUE,
                                TimeUnit.NANOSECONDS);

                        // for(final String p: platform){
                        // runUIService(p, config, url, title, report);
                        // }
                    }

    public void runService(){
              WebDriver driver = getDriver();
//some selenium operations performed
    }

我试图在多个线程中并行执行runService()。 getDriver()方法返回Selenium WebDriver的新实例。 如果我在单个平台上执行所有硒操作,则成功运行,但是,尽管为每个平台打开了新的浏览器实例,但在多个平台上触发了相同的代码,则硒元素上将出现很多错误。 我不知道这可能是什么原因? 通过selenium同时运行多个浏览器实例是否存在问题?

我认为这是一个并发问题。 您是否尝试过对方法使用synced关键字? 即公共同步void runService()

或在您的getDriver()方法中。

希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM