在python上使用Selenium Webdriver发送unicode

时间:2013-01-10 10:16:51

标签: python unicode selenium webdriver

我正在使用Selenium Webdriver和python在网站上运行测试。

python 2.7.2与最新的Selenium

我无法弄清楚如何将德语“Umlaute”(öäüß)等unicode发送到输入表单。据我所知,webdriver可以处理unicode,所以这可能是一个python问题。

# -*- 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)

这没有错误,但不发送“ä”。是否需要进一步编码/解码......?

干杯

1 个答案:

答案 0 :(得分:5)

经过几个小时的尝试后我终于明白了=) 看起来我的IDE(Komodo)导致了这个问题 - 在将首选项中的编码设置为latin-4后,它可以通过两种不同的方式很好地工作:

将字符串声明为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)

解码latin-4并转换为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)

感谢所有帮助过我的人!

干杯