Selenium简单实践,登录QQ邮箱和QQ空间

Selenium是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,python有selenium库可以专门用来操纵浏览器,下面我用火狐浏览器为例介绍代码登录邮箱和空间的过程。

环境配置

首先安装selenium,在终端执行pipinstall selenium即可。

然后安装火狐浏览器,如果本地有火狐浏览器即可忽略本操作。

安装火狐驱动程序,Firefox的驱动geckodriver下载地址:

https://github.com/mozilla/geckodriver/releases/

下载解压后把geckodriver.exe(linux是geckodriver文件)发到Python的安装目录的Scripts文件夹里面就可以了。

注:不使用火狐浏览器也可以使用谷歌浏览器Chrome,下载安装Chrome,在

或者

http://npm.taobao.org/mirrors/chromedriver/

下载对应的webdriver,对应表如下

然后将chromedriver.exe文件放到python安装目录下的Scripts文件夹下即可

登录qq邮箱

webdriver提供八种元素定位方法,如表

我在这里发现xpath(绝对路径定位)比较方便,尤其是在使用工具的情况下,在火狐浏览器附加插件中,如图

搜索xpath,选择第一个插件

这样,我们就可以避免看复杂的网页源代码查找相关元素了,尤其是在网页很复杂的情况下,合理使用xpath插件可以提高效率。

选择基本版后,网页变成这样

好了,继续补上代码,如下

程序运行结果如下动态图

登录QQ空间

在qq空间的登录界面,如图,我们发现,没有基本版这个选择捷径了,就只能在中间那选择二维码登录或者账号密码登录

使用xpath定位的时候发现无法定位,如图

但是别忘了,没法定位是有原因的,鼠标右键单击这发现其实这是一个框架,选择“查看框架源代码”,在地址栏下删除“view-source:” 回车,然后再用xpath重新定位,如图

代码如下:

程序运行结果:

图中程序点击登陆的时候突然出现了网络繁忙之类的,我马上再点击一下补了一刀,哈哈哈,完美。

写在最后

登录QQ空间和QQ邮箱的时候有可能要输验证码,但是一直叫输验证码肯定是异常情况,账号或者密码错误。

使用自己经常使用的电脑一般不会输验证码,但是自动化登录频率多了会。

其他浏览器在插件里输入xpath发现工具还挺多,当发现生成的绝对路径很长的时候多半也是对的

当登录了QQ可以直接点击QQ头像的那个图标,使用自动化程序也是可以的,只是绝对路径需要换一个工具查找,因为使用xpath finder的时候点一下图标,路径没出现,但是……已经登录了。

我的困惑:

在登录QQ空间的时候我发现登录界面是在一个框架里面的,在查网页源代码的时候我惊讶的发现框架竟然是被注释掉了,如图:

那么问题是,这段被注释掉的代码是如何执行的呢?我是非常非常非常的惊讶,恳请大佬们回答,解决我目前最大的困惑。

(完)

看完本文有收获?请转发分享给更多人

关注「Python那些事」,做全栈开发工程师

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180824B09C6U00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券