簡體   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