在使用selenium时候,难免会遇到需要处理中文的情况。毕竟咱们是在中国,做的产品大都也是和中文有强烈联系的。

举例:打开好搜。搜索“灵魂摆渡”,找到类名为:‘g-mohe ’的类。然后退出。

代码如下:

driver = webdriver.Chrome()

driver.maximize_window()
driver.get("http://www.haosou.com")
q = '灵魂摆渡'
driver.find_element_by_name("q").send_keys(q)
driver.find_element_by_name("q").submit()
driver.find_element_by_class_name('g-mohe ')      
driver.quit()

代码看起来是没问题的,但是执行之后会报错:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe7 in position 0: unexpected end of data

这是什么意思?在python2.7+selenium中,使用utf-8编码的中文作为参数调用send_keys()方法。

utf8编码不能按照我们预期的填入对应的搜索框内。怎么办呢?

在这里,我们可以使用解码的方式,把utf8编码变为unicode。得到解决。

具体步骤:

把代码中的driver.find_element_by_name("q").send_keys(q)

修改为:driver.find_element_by_name("q").send_keys(q.decode())

或者你喜欢写成:dirver.find_element_by_name("q").send_keys(u'灵魂摆渡')

也是可以的。你开心就好。

顺带一提decode方法,默认的参数就是'utf8'。所以如果你的中文字符串使用的本来就是utf8编码。那么就不用添加参数。

如果你的中文字符串是GBK编码的,记得在使用decode方法时,写为:decode('GBK')

selenium使用send_keys()方法写中文报错的解决方法相关推荐

  1. mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法

    近期在开发过程中,因为项目开发环境连接的mysql数据库是阿里云的数据库,而阿里云的数据库版本是5.6的.而测试环境的mysql是自己安装的5.7.因此在开发过程中有小伙伴不注意写了有关group b ...

  2. python googletrans_Python使用googletrans报错的解决方法

    问题 最近在工作中发现了一个问题,Python代码一直用着免费的Google翻译API插件googletrans,这两天突然就报错了: Traceback (most recent call last ...

  3. android线程改变布局,Android线程中设置控件的值提示报错的解决方法

    本文实例讲述了Android线程中设置控件的值提示报错的解决方法.分享给大家供大家参考,具体如下: 在Android线程中设置控件的值一般会与Handler联合使用,如下: package com.y ...

  4. 关于Visual Studio 中“scanf”输入报错的解决方法

    有很多初次接触VS的同学会发现,当我们在写完一段代码,代码中用到scanf输入变量时,在调试编译的过程中就会出现错误: warning C4996: 'scanf': "This funct ...

  5. MySQL 安装报错的解决方法

    MySQL 安装报错的解决方法 前言 mysql 使用的是官网下载的安装包,mysql-installer-community-8.0.25.0.msi ,第一次安装时很顺利,因为某些原因要卸载重新安 ...

  6. 引入文件报错的解决方法(bootstrap+jquery项目)

    这篇文章主要介绍了bootstrap+jquery项目引入文件的常见报错问题,下面给大家分享了一些错误及错误的解决方法,需要的朋友可以参考下 做一个项目的时候 ,控制台总是会出现各种bug,其实不用慌 ...

  7. 刺客信条起源在线服务器错误,刺客信条起源闪退进不去怎么办 游戏报错故障解决方法...

    刺客信条起源闪退进不去怎么办 游戏报错故障解决方法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 刺客信条起源闪退进不去 ...

  8. php rename 覆盖,php rename 报错的解决方法

    php rename 报错的解决方法 发布时间:2020-09-22 10:00:30 来源:亿速云 阅读:94 作者:小新 这篇文章给大家分享的是有关php rename 报错的解决方法的内容.小编 ...

  9. fundebug php,import提升导致Fundebug报错的解决方法(详细)

    本篇文章给大家带来的内容是关于import提升导致Fundebug报错的解决方法(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 摘要: 解释一下"请配置apikey ...

最新文章

  1. 在VMWare上安装linux
  2. 爬虫普及,Web安全更需注意
  3. 【PAT甲级 环最短距离】1046 Shortest Distance (20 分) Java、C++
  4. java 日期数组_Java数组
  5. (三)、dubbo环境的搭建
  6. 开源 免费 java CMS - FreeCMS-信息页静态化参数 .
  7. HTTP协议 (二) 基本认证
  8. html5 video视频资源保护,HTML5 视频播放 video
  9. java动态规划解法_动态规划通用解法总结(示例代码)
  10. 微博表情 文本与图片对照表
  11. L13 操作系统的这棵树
  12. excel电子表格发展历史
  13. 时空跳跃者的追捕行动模拟赛
  14. H5播放B站源的flv视频
  15. HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码
  16. 10-79 spj-查询供应工程 j1 零件 p1 的供应商
  17. MATLAB 声音文件分析、处理。
  18. 8b/10b编码是什么?
  19. 如何设定打开页面的大小
  20. 什么是 jQuery ?

热门文章

  1. IDC机房对接阿里云
  2. Spring Boot学习总结(24)——Spring Boot 2.5 新特性一览
  3. 敏捷开发系列学习总结(4)—Git管理工具sourcetree的安装
  4. Ehcache学习总结(3)--Ehcache 整合Spring 使用页面、对象缓存
  5. 如何实现Activiti的分支条件的自定义配置(转)
  6. mongodb安装及可视化工具robomongo安装
  7. 利用XMLHTTP下载文件
  8. 深入理解全局编录服务器GC
  9. Yapi 部署及遇到的坑
  10. [Swift实际操作]七、常见概念-(12)使用DispatchGroup(调度组)管理线程数组