我试图在selenium中发送带有西班牙语重音的键,我正在做的是通过带有各种声明的数组发送字符串,这里是它被卡住的行。
["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:433Mhz。-Codigo de trabajo:2262。-Alacanceinalámbrico:80 mtsconííadevaista。”
到此代码:
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: 意外的数据结束
只有在我删除此部分的重音并且我尝试使用解码时它才有效。
答案 0 :(得分:2)
当我尝试在表单内的选择选项中发送类似'España'的内容时,我自己偶然发现了这个错误。
接受的答案是正确的,最好的方法是以unicode发送值。
我将在这里留下一个简短的代码,以透明的方式转换发送的值(str或unicode)
x
答案 1 :(得分:1)
要在selenium-sendkeys中处理unicode,需要进行unicode转换,将字节转换为unicode使用其中一种方式 -
descripciontext =“ - 弗朗肯西亚:433Mhz。-Codigo de trabajo:2262。 -Alacanceinalámbrico:80 mtsconííadevaista。“
PRINT
或者
Unicode (by manual): descripciontext = u"-Frecuencia: 433Mhz. -Codigo de trabajo: 2262. -Alacance inalámbrico: 80 mts con línea de vista."
现在使用send_keys
Unicode (by automatic decoding): descripciontext = unicode(descripciontext.decode("iso-8859-4"))