在python上使用Selenium Webdriver发送unicode

在python上使用Selenium Webdriver发送unicode,python,unicode,selenium,webdriver,Python,Unicode,Selenium,Webdriver,我将SeleniumWebDriver与python一起用于在网站上运行测试 带有最新Selenium的python 2.7.2 我不知道如何将unicode(如德语“Umlaute”(öäüß)发送到输入表单。据我所知,webdriver可以处理unicode,所以这可能是python的问题 # -*- coding: iso-8859-1 -*- from selenium import webdriver driver = webdriver.Firefox() driver.get(

我将SeleniumWebDriver与python一起用于在网站上运行测试

带有最新Selenium的python 2.7.2

我不知道如何将unicode(如德语“Umlaute”(öäüß)发送到输入表单。据我所知,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)
这可以正常工作,但不会发送“ä”。是否需要进一步的编码/解码


干杯

经过几个小时的尝试,我终于得到了它=) 看起来是我的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)
解码拉丁语-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)
谢谢所有帮助我的人


Cheers

假设HTML页面有一个编码;在调用
之前将输入编码为该编码。send_keys()
是否可以工作
google.de
sez它被编码为
ISO-8859-1
,所以试试
。发送_键(i.encode('latin1')
。它发送的是什么而不是ä号?它不发送任何东西而不是ä号。如果google.de在
ISO-8859-1
上运行,我应该很擅长
i=“hälp me”
由于我的文件已编码
#-*-编码:iso-8859-1-*-
但这会引发一个错误
UnicodeDecodeError:“utf8”编解码器无法解码位置0:无效的起始字节
i.encode(“拉丁语”)
也不起作用-同样的错误我也试过yahoo.de,它是用原始代码utf-8编码的…没有成功。我也试过Chrome webdriver,但它给出了同样的错误。此外,我试过
I.decode(“iso-8859-1”).encode(“utf-8”)
在变量声明中使用和不使用
u
。如果不成功,我的想法就没有了=(类似这样:
I=unicode(I,“utf-8”)
可能?(1)不要在ByTestRing中使用非ascii字符(在Python 3中明确禁止)。使用
u'
unicode文本或在顶部添加
from\uuuu future\uuuu导入unicode\u文本,以创建unicode字符串。(2)不相关:使用单引号,以避免在Python源代码中转义双引号:
'[name=“q”]”
(3)对Python源代码使用utf-8编码(相应地配置IDE/编辑器)除非你有很好的理由不这么做。