5. 躺过的坑
5.1 输入中文,报编码错误
-
代码示例:
find_element('css selector', 'div[id=name]').send_keys('中国')
-
解决方法
-
Error1
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 10-11: Body ('测试') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8. 原因是因为 中文进行latin1编码的时候出错, 提示先用 utf8编码下.
-
解决:
find_element('div[id=name]').send_keys('中国'.encode('utf8')) # 默认是 utf8编码, 所以可以不填写
-
-
Error2
紧接着又报错: TypeError: sequence item 0: expected str instance, int found 找到报错位置 `selenium.webdriver.remote.webelement.WebElement.send_keys` 打印了看下, 是因为数组中是有数字, 无法进行组合 源码: "".join(keys_to_typing(value)) # 示例: keys_to_typing(value) -> [127, 123, 33]
-
解决: 修改源码
源码位置: selenium.webdriver.remote.webelement.WebElement.send_keys 原内容: "".join(keys_to_typing(value)) 修改为: "".join([i if type(i) is str else chr(i) for i in keys_to_typing(value)])
-
-