4

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

带有最新 Selenium 的 python 2.7.2

我不知道如何将诸如德语“元音变音”(öäüß) 之类的 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)

这可以正常工作,但不会发送“ä”。是否需要进一步的编码/解码...?

干杯

4

1 回答 1

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)

感谢所有帮助过我的人!

干杯

于 2013-01-10T15:48:03.720 回答