学习python的过程中,少不了接触第三方库,毕竟作为胶水语言python的强大之处也就是第三方库体量庞大,无疑大大增强了python的战斗力。

有时候想完成网页自动化操作,这时候Selenium进入了我的世界。从获悉它是用来控制浏览器完成自动化任务这一属性以后,就如痴如醉的开始从官网和百度教程涉猎它的用法。

玩了一天,目前学会了自动打开浏览器,然后输入指定的网址,接着最大化。随后发现它还可以进行键鼠操作,这让我想到了打开电脑,启动python,自动登录腾讯视频账号。

说干就干,马上动手,不知道会有怎样的惊喜?

流程一:启动浏览器,然后最大化

 

首先安装Selenium库在你的本地环境,前提是安装了Python。我用的是python3.9.1在我其他文章可以看到安装教程。

打开cmd,然后使用pip(包管理软件)进行安装,输入如下命令:

pip install selenium

像我这样已经安装完成。

不同的浏览器要下载不同的驱动,我用的是谷歌,所以在

谷歌驱动官方下载地址:

https://chromedriver.storage.googleapis.com/index.html

下载好的驱动放在python安装目录下就行,然后在python里引用selenium的chrome,像这样:

from selenium.webdriver import Chrome

然后打开调用浏览器,像这样:

driver = Chrome()

接着测试一下能否打开浏览器。

好的,环境一切就绪。现在可以按照官网的教程开始操作了。

selenium官方中文文档

https://www.selenium.dev/documentation/zh-cn/

最大化命令如下:

driver.maximize_window()

流程二:登录腾讯视频,然后最大化

get命令用于打开网址,接下来,我们打开腾讯视频:

driver.get(''https://v.qq.com/)

既然是看电影,没有会员怎么行,这就需要登录了。由于selenium可以操作键盘和鼠标,所以我们登录的输入和点击都可以完成。

那么点击命令是在寻找到节点的情况下使用click(),而寻找的过程类似解析HTML的文档树,方法很多,可以通过id,classname,css selector等等,但我觉得这个最好用:xpath。而寻找的过程需要一定的前端基础,这里直接放代码,点击打开登录框:

driver.find_element_by_xpath("//div[@id='mod_head_user']").click()

虽然我觉得隐式等待可以提一下,但是我的千兆宽带觉得用不上。大家感兴趣的可以了解一下:implicitly_wait

同样的道理,我们点击QQ登录。

我电脑登录了qq,所以自然就出来了,再次执行点击命令就可完成登录。如果没有登录qq的朋友可以,切换到账号密码登录,操作方法和上面差不多,都是属于点击命令,这里就不赘述。

不过这里要给大家说一个概念,叫iframe,这个登录窗口是一个iframe页面,也就是内嵌网页。我们直接使用上述的命令无法点击,需要切换到frame里才能操作。怎么切换呢?命令如下:

经过测试,腾讯视频登录按钮内嵌了两层iframe,所以需要依次切换,像这样:

driver.switch_to.frame('_login_frame_quick_') driver.switch_to.frame('ptlogin_iframe')

然后点击即可,至此已经完成了登录操作:

driver.find_element_by_xpath("//span[@id='img_out_1667650021']").click()

当然selenium的神奇之处远不止于此,后续将继续研究记录。

零基础学Java或Python的兄弟姐妹,资料干货尽在我的公众号:lunvey

Selenium刚玩一会儿,就感受了私人秘书的体验的更多相关文章

  1. 给刚玩Hadoop的朋友一些建议

    随着两会中间央视新闻天天说大数据,很多人纷纷开始关注大数据和Hadoop以及数据挖掘和数据可视化了,我现在创业,遇到很多传统数据行业往Hadoop上面去转型的公司和个人,提了很多问题,大多数问题还都是 ...

  2. selenium之 玩转鼠标键盘操作(ActionChains)

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件——ActionChains sele ...

  3. [python / selenium] - 用python刷公选课是一种什么体验?

    前言 看公选课还是能学到很多知识的,这里是给大家提供一个selenium的使用思路(好好学公选课,我真的看了) 思路 当观看者移动鼠标到某一范围时就会停止播放,就让selenium一直将鼠标悬停在视频 ...

  4. 玩转Libmodbus(二) 写代码体验

    libmodbus在线文档 https://www.jianshu.com/p/d93c17485c0a 原创篇 参考上一篇转载的博客,我的ubuntu上的最终生成的动态库的路径,下图所示 我的lin ...

  5. selenium webdriver学习(一)------------快速开始(转载JARVI)

    selenium webdriver学习(一)------------快速开始 博客分类: Selenium-webdriver selenium webdriver 学习 selenium webd ...

  6. words2

    餐具:coffee pot 咖啡壶coffee cup 咖啡杯paper towel 纸巾napkin 餐巾table cloth 桌布tea -pot 茶壶tea set 茶具tea tray 茶盘 ...

  7. [Mac A]为什么国外程序员爱用 Mac?

    from http://www.vpsee.com/2009/06/why-programmers-love-mac/ Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜 ...

  8. [转] [腾讯游戏学院] Roguelike到底是什么?

    如果你是一位资深游戏玩家,那么最近你肯定在哪里看到过 Roguelike 这个词.Roguelike 这个古老的游戏类型现在又变得很潮流,其中各种要素都在不断的被新游戏借鉴.作为一名就是比你有更多空余 ...

  9. [No000025]停止自嘲—IT 技术人必须思考的 15 个问题

    行内的人自嘲是程序猿.屌丝和码农,行外的人也经常拿IT人调侃,那么究竟是IT人没有价值,还是没有仔细思考过自身的价值? 1.搞 IT 的是屌丝.码农.程序猿? 人们提到IT人的时候,总会想到他们呆板. ...

随机推荐

  1. 【排序基础】5、插入排序法 - Insertion Sort

    插入排序法 - Insertion Sort 文章目录 插入排序法 - Insertion Sort 插入排序设计思想 插入排序代码实现 操作:插入排序与选择排序的比较 简单记录-bobo老师的玩转算 ...

  2. load data local带来的安全问题

    load data默认读的是服务器上的文件,但是加上local参数后,就可以将本地具有访问权限的文件加载到数据库中,这在带来方便的同时,也带来了以下安全问题, 可以任意加载本地文件到数据库, 在web ...

  3. 【Linux】rsh进程缓慢问题处理

    环境CentOS 6.5 由于项目上线时间很长,服务器持续很久没有关机重启过,随后发现rsh反应特别慢 rsh登陆服务器的反应最慢时候3分钟才可以建立链接,登陆之后查看服务器负载是否正常,查看cpu, ...

  4. 为什么会有 AtomicReference ?

    我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 我们之前了解过了 AtomicInteger.Ato ...

  5. 注入器(injector)

    1.0    注入器/injector 注入器是AngularJS框架实现和应用开发的关键,这是一个DI/IoC容器的实现. AngularJS将功能分成了不同类型的组件分别实现,这些组件有一个统称 ...

  6. python多线程和GIL全局解释器锁

    1.线程     线程被称为轻量级进程,是最小执行单元,系统调度的单位.线程切换需要的资源一般,效率一般.  2.多线程         在单个程序中同时运行多个线程完成不同的工作,称为多线程 3.并 ...

  7. navicat premium 11.0.17 破解版

    下载地址: 链接:https://pan.baidu.com/s/1zBoKRAaQZb2p2weelJpKMQ       提取码:b8dd 一款功能强大的数据库管理工具Navicat Premiu ...

  8. 计算机网络第7版 PDF+ 计算机网络释疑与习题解答第7版 PDF 计算机网络 课后答案

    网上全都是要钱的,要么就是第六版的,属实被恶心到了. 链接:https://pan.baidu.com/s/15jCOH6LXnQfB1RwGpNgBFg提取码:byMB

  9. LOJ10067

    LOJ10067 构造完全图 给你一棵树 T,找出 T 能扩展出的边权和最小的完全图 G. 第一行 N 表示树 T 的点数: 保证输入数据构成一棵树. 输出仅一个数,表示最小的完全图 G 的边权和. ...

  10. Python3 如何查看内置函数都有哪些?

    数据科学交流群,群号:189158789,欢迎各位对数据科学感兴趣的小伙伴的加入! 上代码: 1 import builtins 2 num = len(dir(builtins)) 3 print( ...