SessionNotCreatedException:会话未创建,未知错误导致异常:Runtime.executionContextCreated与Chrome驱动程序具有无效的“上下文”

时间:2018-11-15 06:41:57

标签: java selenium google-chrome selenium-webdriver selenium-chromedriver

Runtime error

Actual Code

错误堆栈跟踪(从注释更新):

Starting ChromeDriver 2.20.353145 (343b531d31eeb933ec778dbcf7081628a1396067) on port 7778 Only local connections are allowed. 
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: session not created exception from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"961185F0AA38D24650EF6C797BC32535","isDefault":true,"type":"default"},"id":1,"name":"","origin":"://"} 
(Session info: chrome=70.0.3538.102) 
(Driver info: chromedriver=2.20.353145 (343b531d31eeb933ec778dbcf7081628a1396067),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 1.68 seconds Build info: version: '3.141.5', revision: 'd54ebd709a', time: '2018-11-06T11:58:41' 
System info: host: 'LTAH024', ip: '192.168.131.142', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_60' 
Driver info: driver.version: ChromeDriver

我写了一个简单的程序来启动chrome浏览器。请参见下面的代码。我已经在环境变量中设置了路径:

package automationFramework;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeBrowser {

  public static void main(String[] args) {
    // TODO Auto-generated method stub

    WebDriver drive = new ChromeDriver();

    drive.get("http://toolsqa.com/selenium-webdriver/running-tests-in-chrome-browser/");

    System.out.println("Successfully open tools qa website in Chrome browser");
    //Thread.sleep(5000); //To initiate thread , we need to add throws interrupt exception

    //Close the driver
    //driver.quit();
  }
}

请调查一下并帮帮我。 Firefox的geckodriver也在工作。

3 个答案:

答案 0 :(得分:0)

Download chrome driver,将其保存在您的本地地址,并将路径放在System.setProperty处,尝试以下代码,希望对您有所帮助。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeBrowser {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "B:\\chromedriver.exe"); //put driver path here
        WebDriver drive = new ChromeDriver();

        drive.get("http://toolsqa.com/selenium-webdriver/running-tests-in- chrome-browser/");
        System.out.println("Successfully open tools qa website in Chrome browser");
        drive.quit();
    }
}

答案 1 :(得分:0)

打开Chrome浏览器的三种方法:

第一个:使用system.setproperty

System.setProperty("webdriver.chrome.driver", "F:\\New folder\\chromedriver.exe");
Webdriver driver = new ChromeDriver();

第二个:使用Chrome选项:

//set path to chromedriver.exe

        ChromeOptions options = new ChromeOptions();
        options.setAcceptInsecureCerts(true);
        options.setBinary(new File("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"));
        options.addArguments("disable-infobars");
        System.setProperty("webdriver.chrome.driver", "F:\\New folder\\chromedriver.exe");

        driver = new ChromeDriver(options);

最后一个:如果您正在使用maven,请使用此

这将下载最新版本的chrome驱动程序并启动它。您可以在使用bonigarcia依赖项内使用WebDriverManager。在Bom.xml文件中添加bonigarcia依赖项,并通过WebdriverManager开始使用它

https://github.com/bonigarcia/webdrivermanager

WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();

最后Gecko驱动程序和Firefox的版本是什么?

答案 2 :(得分:0)

此错误消息...

Starting ChromeDriver 2.20.353145 (343b531d31eeb933ec778dbcf7081628a1396067) on port 7778 Only local connections are allowed. 
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: session not created exception from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"961185F0AA38D24650EF6C797BC32535","isDefault":true,"type":"default"},"id":1,"name":"","origin":"://"} 
(Session info: chrome=70.0.3538.102) 
(Driver info: chromedriver=2.20.353145 (343b531d31eeb933ec778dbcf7081628a1396067),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 1.68 seconds Build info: version: '3.141.5', revision: 'd54ebd709a', time: '2018-11-06T11:58:41' 
System info: host: 'LTAH024', ip: '192.168.131.142', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_60' 
Driver info: driver.version: ChromeDriver

...表示 ChromeDriver 无法启动/产生新的 WebBrowser ,即 Chrome浏览器会话。

您确实有3个问题,主要问题是所使用的二进制文件版本之间的不兼容性

  • 您正在使用 chromedriver = 2.2.20
  • chromedriver=2.20的发行说明中明确提到以下内容:
  

支持 Chrome v43-48

  • 您正在使用 chrome = 70.0
  • ChromeDriver v2.43的发行说明中明确提到以下内容:
  

支持 Chrome v69-71

  • 您的 Selenium Client 版本是 3.141.5 的当前版本。.
  • 您的 JDK版本 1.8.0_60 ,这是古老的

因此 JDK v8u60 Selenium Client v3.141.5 ChromeDriver v2.20 之间存在明显的不匹配Chrome浏览器v70.0

解决方案

  • 使用 Selenium v​​3.x 客户端时,您需要从ChromeDriver - WebDriver for Chrome下载最新的 ChromeDriver ,并将其存储在系统中的任何位置并提供<通过 System.setProperty() 行的 ChromeDriver 的em>绝对路径,如下所示:

    System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
    
  • JDK 升级到最新级别JDK 8u191

  • ChromeDriver 升级到当前的ChromeDriver v2.43级别。
  • Chrome 版本保持在 Chrome v69-71 级别之间。 (as per ChromeDriver v2.43 release notes
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • (仅适用于 WindowsOS )使用CCleaner工具清除执行 Test Suite 前后的所有操作系统琐事。
  • (仅仅LinuxOS Free Up and Release the Unused/Cached Memory in Ubuntu/Linux Mint在执行 Test Suite 之前和之后。
  • 如果您的基本 Web客户端版本过旧,请通过Revo Uninstaller进行卸载,并安装最新版本的 Web客户端。 li>
  • 进行系统重启
  • 执行您的@Test
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。