Python Selenium: XPath меняет кодировку моих переменных - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть этот код, который просматривает текст по XPath.Проблема состоит в том, что искомый текст может содержать латинские символы, такие как ñ или í.

Я кодировал его, и когда я его печатал, он отлично отображался, но когда я использую XPath, кодировка меняется, иочевидно, это не может быть найдено.

Декодированный var печатает хорошо:

nombre_act = "HOTEL DIEGO DE ALMAGRO SAN PEDRO DE ATACAMA"
nombre_act = nombre_act.decode("utf8")

nombre_contrato = "Campaña Cyber Day, Desayuno Incluído"
nombre_contrato = nombre_contrato.decode("utf8")
print nombre_contrato

xpath = "//select[@name='"+nombre_act+"']/option[text()='"+nombre_contrato+"']"
print xpath
hotel_sel = driver.find_element_by_xpath(xpath).click()

console

1 Ответ

0 голосов
/ 27 ноября 2018

Ваши испытания кода были почти идеальными.Однако я чувствую, что вам не нужно менять кодирование / декодирование, если вы не хотите печатать символы на консоли следующим образом:

nombre_act_actual = "HOTEL DIEGO DE ALMAGRO SAN PEDRO DE ATACAMA"
#nombre_act = nombre_act_actual.encode("utf-8")

nombre_contrato_actual = "Campaña Cyber Day, Desayuno Incluído"
nombre_contrato = nombre_contrato_actual.encode("utf-8") #required as you need to print to the console
print nombre_contrato

xpath = "//select[@name='"+nombre_act_actual+"']/option[text()='"+nombre_contrato_actual+"']"
hotel_sel = driver.find_element_by_xpath(xpath).click()

Однако другая проблема - несовместимость между версиями двоичных файлов, которые вы используете, следующим образом:

  • Вы используете chromedriver = 2,41
  • Примечания к выпуску chromedriver =2.41 четко упоминает следующее:

Поддержка Chrome v67-69

  • Вы используете chrome = 70.0
  • Примечания к выпуску ChromeDriver v2.44 четко упоминает следующее:

Поддержка Chrome v69-71

Таким образом, существует явное несоответствие между ChromeDriver v2.41 и Chrome Browser v70.0

Решение

  • Обновление ChromeDriver до текущей ChromeDriver v2.44 уровень.
  • Keep Chrome версия между Chrome v69-71 уровней.( в соответствии с примечаниями к выпуску ChromeDriver v2.44 )
  • Очистить ваше Рабочее пространство проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
  • Если ваша базовая Веб-клиент версия устарела, то удалите ее через Revo Uninstaller и установите последнюю версию GA и выпущенную версию Web Client .
  • Выполните @Test.
...