Reputation: 101
I'm using Selenium Webdriver with python for running tests on a website.
python 2.7.2 with latest Selenium
I can't figure out how to send unicode such as German "Umlaute" (öäüß) to an input form. As far as I know webdriver can handle unicode so this might be a python problem.
# -*- coding: iso-8859-1 -*-
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.google.de")
i = u"hälp me"
driver.find_element_by_css_selector("INPUT[name=\"q\"]").send_keys(i)
This works without errors but does not send the "ä". Is there any further encoding/decoding required...?
Cheers
Upvotes: 5
Views: 14239
Reputation: 101
After some hours of trying I finally got it =) Looks like my IDE (Komodo) caused the problem - after setting the encoding in preferences to latin-4 it works nicely in two different ways:
Declare string as unicode:
# -*- coding: iso-8859-4 -*-
from selenium import webdriver
from sys import version_info
driver = webdriver.Firefox()
driver.get("http://www.google.de")
i = u"hälp me"
driver.find_element_by_css_selector("INPUT[name=\"q\"]").send_keys(i)
Decode latin-4 and convert to unicode:
# -*- coding: iso-8859-4 -*-
from selenium import webdriver
from sys import version_info
driver = webdriver.Firefox()
driver.get("http://www.google.de")
i = "hälp me"
i = unicode(i.decode("iso-8859-4"))
driver.find_element_by_css_selector("INPUT[name=\"q\"]").send_keys(i)
Thanks to everybody who helped me!
Cheers
Upvotes: 5