我试图在selenium中发送带有西班牙语口音的键,我所做的是通过一个带有不同入口的数组发送字符串,这是它得到stucks的行。
["Electrodomésticos", "Otros electrodomésticos", ["sensorhumo.jpg"], "Sensor de humo inalámbrico independiente.", "-Frecuencia: 433Mhz. -Codigo de trabajo: 2262. -Alacance inalámbrico: 80 mts con línea de vista. ", "59000", "x", "x", "x", "x", "x", "x"],当我发送这部分时:
-Frecuencia:433 mts。-Codigo de trabajo: 2262。-Alacance inalámbrico: 80 mts conínea de vista。
到此代码:
descripcion=".//*[@id='field-description']"
descripciontext=str(array3[i][x])
x=x+1
descripcionelement = wait.until(lambda driver: driver.find_element_by_xpath(descripcion))
descripcionelement.send_keys(descripciontext) 它抛出了这样的信息:
UnicodeDecodeError:'utf8‘编解码器无法解码0位置的字节0xc3 :数据的意外结束
只有当我删除这个部分的重音,并尝试使用解码时,它才能起作用。
发布于 2015-10-03 00:33:03
要处理selenium-sendkey中的unicode,需要unicode转换,要将字节转换为unicode,请使用以下方法之一-
descripciontext = "-Frecuencia: 433 mts . -Codigo de trabajo: 2262. -Alacance inalámbrico: 80 mts conínea de vista.“
Unicode (by manual): descripciontext = u"-Frecuencia: 433Mhz. -Codigo de trabajo: 2262. -Alacance inalámbrico: 80 mts con línea de vista."或
Unicode (by automatic decoding): descripciontext = unicode(descripciontext.decode("iso-8859-4"))现在使用send_keys
descripcionelement.send_keys(descripciontext)发布于 2017-02-23 17:12:29
当我试图在表单中的选择选项中发送类似“Espa”的内容时,我自己也被这个错误绊倒了。
接受的答案是正确的,最好的方法是用unicode发送值。
我将在这里留下一个简短的简单代码,它以透明的方式转换发送的值( str或unicode )。
def _convert(param):
if isinstance(param, str):
return param.decode('utf-8')
else:
return param
# both examples will work
parameter = 'España'
driver_element.send_keys(_convert(parameter))
unicode_parameter = u'España'
driver_element.send_keys(_convert(parameter))https://stackoverflow.com/questions/32910555
复制相似问题