Драйвер Selenium Chrom: не удалось проанализировать значение getElementRegion - PullRequest
1 голос
/ 03 октября 2019

Я пытаюсь внедрить какой-нибудь автоматический пользовательский тест с Behat / Mink на Selenium в Docker. Тем не менее, я получил «не удалось разобрать значение getElementRegion» для некоторого элемента. У вас есть какие-либо подсказки, где мне следует искать решение этой проблемы?

Я пытаюсь запустить этот тест с помощью докера на контейнере Selenium. Тест Behat пытается получить доступ к div внутри модального.

Я могу подтвердить, что текст виден на экране, это одна из моих предыдущих строк в файле behat.

Я хотелчтобы попытаться найти решение, опишите здесь , однако в моем проекте нет никаких conf.js.

Я пытаюсь увидеть во время теста, изменяется ли идентификаторпытаясь щелкнуть), однако я могу увидеть его вручную.

Я не вижу другого решения, которое я связал ранее в Google.

Мой сценарий

@javascript @second
Feature: Builder Features
  In Order to use the website as an Builder
  I should be able to modify the roadmap

  Scenario: I can do click on the modal
    When I am on "/thispage"
    Then I should see "The Title who open the Modal"
    Then I click on ".form-check-label"
    Then I wait "1"
    Then I wait until "#generic-modal" load
    Then I should see "The title of the modal"
    Then I should see "The description of the modal"
    Then I click on "#check47"
    Then I press "Close the modal"

PHP, на котором я нажимаю:

    /**
     * @Then /^I click on "([^"]*)"$/
     */
    public function iClickOn($selector)
    {
        $page    = $this->getSession()->getPage();
        $element = $page->find('css', $selector);

        if (empty($element)) {
            throw new Exception("No html element found for the selector ('$selector')");
        }

        $element->click();
    }

Селеновая часть Docker-compose

    selenium:
        image: selenium/standalone-chrome-debug:latest
        networks:
            app_tier:
                ipv4_address: 172.11.1.4
        environment:
        - SCREEN_WIDTH=1920
        - SCREEN_HEIGHT=1080
        ports:
        - "5900:5900"
        volumes:
        - "/dev/shm:/dev/shm"
        - "../features/file:/usr/share/tag/file/"

The Behat'sРасширение в behat.yml

    extensions:
        Behat\MinkExtension:
            base_url: "http://172.11.1.3"
            sessions:
                javascript:
                    selenium2:
                        capabilities: {"browserName": "chrome", "browser": "chrome", 'chrome': {'switches': ['--whitelisted-ips']}, "marionette": true, "extra_capabilities": {"goog:chromeOptions":{"w3c":false,"args":["start-maximized", 'disable-dev-shm-usage', 'disable-extensions']}}}
                        wd_host: 'http://172.11.1.4:4444/wd/hub'
        Behat\Symfony2Extension: ~

Я должен передать все скрипты behat без ошибок.

Однако это сообщение появляется:


    Then I click on "#check27"                                                                                # FeatureContext::iClickOn()
      unknown error: failed to parse value of getElementRegion
        (Session info: chrome=77.0.3865.75)
        (Driver info: chromedriver=77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}),platform=Linux 4.19.23-coreos-r1 x86_64) (WebDriver\Exception\UnknownError)

1 Ответ

0 голосов
/ 18 октября 2019

У нас та же проблема. Мы используем Behat / Mink с Selenium Chromedriver, исключая тесты на виртуальной машине Windows Server через Selenuum Grid.

Определение шага PHP:

        public function theUserSelectsTheOptionFrom(string $option, string $selectBox)
{
    $field = $this->getSession()->getPage()->findField($selectBox);
    $field->find('css', 'option:contains("' . $option . '")')->click();
}

Драйверу Selenium Chrome не удалось проанализировать значение getElementRegion в результате:

unknown error: failed to parse value of getElementRegion
...