axeDimko
(axeDimko)
August 15, 2012, 1:20pm
#1
Добрый день, наткнулся на некторую проблему:
при заполнении формы необходимо в поля вводить данные кириллицей, после запуска теста из командной строки windows 7, получил ошибку UnicodeDecodeError : ' utf8 ' codec can't decode ... сначала эта ошибка появлялась с локаторами, ее удавалось устранить с помощью css selector, но в форме необходимо вводить символы кириллицей, и ввод данных в поля таким образом: driver.find_element_by_id("credit_request_full_name").send_keys("Иван Иванович Тест") фэлит тест.
Как можно обойти данную ошибку?
Спасибо.
furiousduck
(Alexander Petrovich)
August 15, 2012, 3:03pm
#2
# -*- coding: utf-8 -*- --- в начале файла
driver.find_element_by_id("credit_request_full_name").send_keys(u"Иван Иванович Тест")
;) Не за что
polusok
(Mykhailo Poliarush)
August 15, 2012, 4:36pm
#3
да проблема юникода очень часто встречаюется у начинающих русскоязычных автоматизаторов и программистов :)
вся проблема в том, что ascii нет места для многих букв, таких как русские, для этого надо использовать более рассширенный формат как utf-8
но решение вам уже подсказали
axeDimko
(axeDimko)
August 16, 2012, 8:49am
#4
Сделал как говорили, в начале файла # -*- coding: utf-8 -*-
и перед крирлицей u, вот что мне пишет в cmd: http://screencast.com/t/uOe7rCsNL , подскажите еще пожалуйста)
polusok
(Mykhailo Poliarush)
August 16, 2012, 9:35am
#5
вот такой вот пример у меня работает нормально
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.yahoo.com") # Load page
assert "Yahoo!" in browser.title
elem = browser.find_element_by_name("p") # Find the query box
elem.send_keys(u"я что-то ищу на русском" + Keys.RETURN)
browser.close()
удостоверьтесь, что вы сохранили файл в ютф-8 формате, потому что он может храниться у вас в формате анси
axeDimko
(axeDimko)
August 16, 2012, 2:19pm
#6
Переделал,как подсказали вы-корректно работает, спасибо.
Но если делать через driver.find_element_by_id("credit_request_full_name").send_keys(u"Иван Иванович Тест"), выдает unicode decode error , странно.