Chromedriver для удаленного веб-драйвера не может найти элемент по идентификатору и работает с XPATH - PullRequest
0 голосов
/ 13 февраля 2020

На Centos 7 VM у меня была установлена ​​chrome версия 80, и я пытаюсь запустить тесты удаленного веб-драйвера selenium с параметрами ниже. Тесты создают сеанс, но не удалось найти элемент By.ID, в то время как By.XPATH работает нормально. Те же тесты отлично работают с geckodriver.

Команда: -

chrome = {"browserName": "chrome", "version": "", "platform": "ANY", "acceptSslCerts": True, "maxInstances": 1}
driver = webdriver.Remote(command_executor=url, desired_capabilities=chrome) 

Ошибка: - Сообщение: нет такого элемента: невозможно найти элемент: {"method": "css selector", "selector" : "[id =" username "]"} (информация о сеансе: chrome = 80.0.3987.100)

У меня все работало на Chrome версии 73. Но обновление до последней версии или с версии 76 до 80 терпят неудачу по той же причине.

Версии: -

  1. Python - 2.7
  2. селен 3.141.0
  3. selenium-server-standalone -3.141.59.jar
  4. google-chrome -stable - 80
  5. chromedriver-80.0.3987.16

Отладка далее, глядя на файл webelement.py, By.ID конвертируется в By.CSS_SELECTOR.

def find_element(self, by=By.ID, value=None):
        """
        Find an element given a By strategy and locator. Prefer the find_element_by_* methods when
        possible.

        :Usage:
            element = element.find_element(By.ID, 'foo')

        :rtype: WebElement
        """
        if self._w3c:
            if by == By.ID:
                by = By.CSS_SELECTOR
                value = '[id="%s"]' % value
            elif by == By.TAG_NAME:
                by = By.CSS_SELECTOR
            elif by == By.CLASS_NAME:
                by = By.CSS_SELECTOR
                value = ".%s" % value
            elif by == By.NAME:
                by = By.CSS_SELECTOR
                value = '[name="%s"]' % value

        return self._execute(Command.FIND_CHILD_ELEMENT,
                             {"using": by, "value": value})['value']

Та же версия 76-80 Chromedriver работает на моей локальной Ma c. Буду признателен за любую оказанную помощь.

...