org.openqa.selenium.json.JsonException: ожидается чтение START_MAP, но вместо этого: END.Последние 0 символов, прочитанные при выполнении тестов через Node - PullRequest
0 голосов
/ 16 октября 2018

Я новичок в Selenium и начал изучать его.Но Selenium Grid не работает для меня.Используемая версия сервера: selenium-server-standalone-3.14.0.jar.Используя команду, концентратор и узел работают.Код для добавления узлов в концентратор написан с использованием TestNG в Eclipse.Код выглядит следующим образом:

ChromeOptions options = new ChromeOptions();
options.setCapability(CapabilityType.PLATFORM_NAME, Platform.WIN10);             
options.setCapability(CapabilityType.BROWSER_NAME, "chrome");
driver = new RemoteWebDriver(new URL("http://192.xxx.x.xx:48807/wd/hub"), options);             driver.get("https://www.amazon.in/");

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

org.openqa.selenium.WebDriverException: Unable to parse remote response: 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:111)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:143)
    at grid.Node2.f(Node2.java:44)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:580)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:716)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:988)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.privateRun(TestRunner.java:648)
    at org.testng.TestRunner.run(TestRunner.java:505)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
    at org.testng.SuiteRunner.access$000(SuiteRunner.java:40)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:489)
    at org.testng.internal.thread.ThreadUtil$1.call(ThreadUtil.java:52)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.openqa.selenium.json.JsonException: Expected to read a START_MAP but instead have: END. Last 0 characters read: 
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-

Команда концентратора:

java -jar selenium-server-standalone-3.14.0.jar -role hub

Команда узла: java -DWebdriver.chrome.driver = C: \ SWs \ chromedriver_win32 \ chromedriver.exe -jar selenium-server-standalone-3.14.0.jar -role узел -hub http://xxx.xxx.x.x:4444/grid/register/

Информация о браузере: Chrome 69
ChromeDriver 2.42.591088

Кто-нибудь, пожалуйста, помогите решить эту проблему, заранее спасибо

1 Ответ

0 голосов
/ 16 октября 2018

Немного удивлен ошибкой:

org.openqa.selenium.json.JsonException: Expected to read a START_MAP but instead have: END. Last 0 characters read

Согласно Selenium 3.12.0 Windows org.openqa.selenium.json.JsonException: Невозможно привести что-то, что не является числом, к числу: STRING исправление должно было быть доступно в Selenium v3.14.0 с учетом фиксации Разрешить преобразователю чисел неявно приводить строки к числам .Ошибка должна была быть:

Cannot coerce something that is not a number to a number: " + type

Тем не менее, когда вы используете Selenium v3.14.0 , кажется, вы используете устаревшие функции.

Согласно документации CapabilityType из PLATFORM_NAME не является допустимой конфигурацией, и вам необходимо изменить ее на PLATFORM.

На моем Система Windows 8 с двоичными файлами Selenium v3.14.0 - вот решение, которое выполняет просто идеально:

  • Кодовый блок:

    import java.net.MalformedURLException;
    import java.net.URL;
    
    import org.openqa.selenium.Platform;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.remote.CapabilityType;
    import org.openqa.selenium.remote.RemoteWebDriver;
    import org.testng.annotations.Test;
    
    public class testChromeOnGrid_test 
    {
    
        @Test
        public void test1() throws MalformedURLException
        {
            System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
            ChromeOptions options = new ChromeOptions();
            options.setCapability(CapabilityType.PLATFORM, Platform.WIN8);           
            options.setCapability(CapabilityType.BROWSER_NAME, "chrome");
            WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), options);
            driver.get("http://google.com/");
            System.out.println("Title is : "+driver.getTitle());
            driver.quit();
        }
    }
    
  • Вывод на консоль:

    [RemoteTestNG] detected TestNG version 6.14.2
    Oct 16, 2018 3:00:57 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: OSS
    Title is : Google
    PASSED: test1
    
    ===============================================
        Default test
        Tests run: 1, Failures: 0, Skips: 0
    ===============================================
    
    
    ===============================================
    Default suite
    Total tests run: 1, Failures: 0, Skips: 0
    ===============================================
    

Обновление

В соответствии с вашим вопросом об обновлении существует проблема с SeleniumУзел сетки команда запуска, которую вы использовали.Используйте команду следующим образом:

  • Чтобы зарегистрировать узел селеновой сетки для ChromeDriver и Chrome , вам необходимо пройтиабсолютный путь ChromeDriver выглядит следующим образом:

    >java -DWebdriver.chrome.driver=C:\\path\\to\\chromedriver.exe -jar selenium-server-standalone-3.14.0.jar -role node -hub http://<IP_GRID_HUB>:4444/grid/register/
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...