WebDriverException: неизвестная ошибка: Runtime.executionContextCreated имеет недопустимый «контекст»: при инициализации браузера Chrome - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь начать использовать селен, скачал драйвер chrome и вставил в мой путь к классам.Я просто пытаюсь получить название прямо сейчас, чтобы посмотреть, смогу ли я заставить его работать.Код в настоящее время выглядит следующим образом:

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

public class Flows {

    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver", "/Users/mn/Desktop/project/turv/src/main/chromedriver");
        WebDriver driver = new ChromeDriver();
        String baseUrl = "http://google.dk/";
        driver.get(baseUrl);
        System.out.println(driver.getTitle());
        driver.close();
    }
}

Я ожидал, что мой вывод будет похож на «Google», но вместо этого я получаю эту ошибку:

Connected to the target VM, address: '127.0.0.1:55299', transport: 'socket'
Starting ChromeDriver (v2.8.241036) on port 2571
[warn] kq_init: detected broken kqueue; not using.: Undefined error: 0
May 07, 2018 12:12:35 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Disconnected from the target VM, address: '127.0.0.1:55299', transport: 'socket'
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"11895A1B77AC560388AA2919259E1422","isDefault":true},"id":1,"name":"","origin":"://"}
  (Session info: chrome=66.0.3359.139)
  (Driver info: chromedriver=2.8.241036,platform=Mac OS X 10.13.3 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z'
System info: host: 'cetreas-MBP', ip: 'fe80:0:0:0:c9e:2c67:1d27:4e0b%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.3', java.version: '1.8.0_161'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptSslCerts: true, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {userDataDir: /var/folders/s7/lv2wt4t15cn...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, javascriptEnabled: true, locationContextEnabled: true, nativeEvents: true, platform: MAC, platformName: MAC, rotatable: false, takesHeapSnapshot: true, takesScreenshot: true, version: 66.0.3359.139, webStorageEnabled: true}
Session ID: ca1f4ba131e73c3d01058bec2b976d22
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
    at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
    at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
    at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:545)
    at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:273)
    at com.cetrea.flows.Flows.main(Flows.java:15)

Я не могу понятьиз того, что ошибка пытается сказать мне.Возможно, это потому, что я спрашиваю название до того, как сайт полностью загрузится?Нужно ли добавлять какую-то команду waitforit перед getTitle()?

1 Ответ

0 голосов
/ 07 мая 2018

Это сообщение об ошибке ...

org.openqa.selenium.WebDriverException: unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"11895A1B77AC560388AA2919259E1422","isDefault":true},"id":1,"name":"","origin":"://"}

... подразумевает, что ChromeDriver не смог инициировать / создать новый WebBrowser т.е. Браузер Chrome сеанс.

Ваша основная проблема заключается в совместимости версии между используемыми вами двоичными файлами следующим образом:

  • Вы используете chromedriver = 2.8 , который довольно древний .
  • Вы используете хром = 66.0
  • Примечания к выпуску ChromeDriver v2.38 четко упоминает следующее:

Поддерживает Chrome v65-67

Так что естьявное несоответствие между ChromeDriver версией ( v2.8 ) и Chrome Browser версией ( v66.0 )

Решение

  • Обновление ChromeDriver до текущей ChromeDriver v2.38 уровень.
  • Сохранить Chrome версия на Chrome v66.x уровней.( в соответствии с примечаниями к выпуску ChromeDriver v2.38 )
  • Очистить ваше Рабочее пространство проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
  • Используйте CCleaner , чтобы стереть все рутинные операции ОС до и после выполнения вашего test Suite .
  • Если ваша базовая веб-клиент версия устарела, удалите ее через Revo Uninstaller и установите последнюю версиюGA и выпущенная версия Веб-клиент .
  • Возьмите Перезагрузка системы .
  • Выполните @Test.
  • ВсегдаВызовите driver.quit() в методе tearDown(){}, чтобы закрыть и уничтожить экземпляры WebDriver и Web Client .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...