我正在使用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)
这没有错误,但不发送“ä”。是否需要进一步编码/解码......?
干杯
答案 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)
感谢所有帮助过我的人!
干杯