Selenium刚玩一会儿,就感受了私人秘书的体验
学习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刚玩一会儿,就感受了私人秘书的体验的更多相关文章
- 给刚玩Hadoop的朋友一些建议
随着两会中间央视新闻天天说大数据,很多人纷纷开始关注大数据和Hadoop以及数据挖掘和数据可视化了,我现在创业,遇到很多传统数据行业往Hadoop上面去转型的公司和个人,提了很多问题,大多数问题还都是 ...
- selenium之 玩转鼠标键盘操作(ActionChains)
用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件——ActionChains sele ...
- [python / selenium] - 用python刷公选课是一种什么体验?
前言 看公选课还是能学到很多知识的,这里是给大家提供一个selenium的使用思路(好好学公选课,我真的看了) 思路 当观看者移动鼠标到某一范围时就会停止播放,就让selenium一直将鼠标悬停在视频 ...
- 玩转Libmodbus(二) 写代码体验
libmodbus在线文档 https://www.jianshu.com/p/d93c17485c0a 原创篇 参考上一篇转载的博客,我的ubuntu上的最终生成的动态库的路径,下图所示 我的lin ...
- selenium webdriver学习(一)------------快速开始(转载JARVI)
selenium webdriver学习(一)------------快速开始 博客分类: Selenium-webdriver selenium webdriver 学习 selenium webd ...
- words2
餐具:coffee pot 咖啡壶coffee cup 咖啡杯paper towel 纸巾napkin 餐巾table cloth 桌布tea -pot 茶壶tea set 茶具tea tray 茶盘 ...
- [Mac A]为什么国外程序员爱用 Mac?
from http://www.vpsee.com/2009/06/why-programmers-love-mac/ Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜 ...
- [转] [腾讯游戏学院] Roguelike到底是什么?
如果你是一位资深游戏玩家,那么最近你肯定在哪里看到过 Roguelike 这个词.Roguelike 这个古老的游戏类型现在又变得很潮流,其中各种要素都在不断的被新游戏借鉴.作为一名就是比你有更多空余 ...
- [No000025]停止自嘲—IT 技术人必须思考的 15 个问题
行内的人自嘲是程序猿.屌丝和码农,行外的人也经常拿IT人调侃,那么究竟是IT人没有价值,还是没有仔细思考过自身的价值? 1.搞 IT 的是屌丝.码农.程序猿? 人们提到IT人的时候,总会想到他们呆板. ...
随机推荐
- 使用yaml配置文件管理资源
[root@k8s-master ~]# vim nginx-deployment.yaml apiVersion: apps/v1beta2 kind: Deployment metadata: n ...
- 基于FPGA的光口通信开发案例|基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例
前言 自著名华人物理学家高锟先生提出"光传输理论",实用化的光纤传输产品始于1976年,经历了PDH→SDH→DWDM→ASON→MSTP的发展历程.本世纪初期,ASON/OADM ...
- 入门OJ:扫雪
扫雪1 题目描述 大雪履盖了整个城市,市政府要求冬季服务部门尽快将一些街道(列在一份清单中)的积雪清除掉以恢复交通,整个城市由许多交叉路口和街道构成,当然任意两个交叉路口都是直接或间接连通的,清单给出 ...
- 2V转3V的电源芯片电路图,2.4V转3V电路
两节镍氢电池1.2V+1.2V是2.4V的标称电压,2.4V可以转3V输出电路应用. 在2.4V转3V和2V转3V的应用中,输出电流可最大600MA. 2V的低压输入,可以采用PW5100低压输入专用 ...
- 数据分析——Numpy/pandas
NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数据进行快速运算的标准数学函数(无需编 ...
- 运用 pyinstaller 打包的python exe文件运行 去掉命令行窗口及其他参数汇总
运行exe文件的时候,会弹出一个dos命令窗口,这个窗口可以看到一些打印信息,如果想只运行tkinter 页面,去掉dos窗口需要在打包的时候 加上 -w 参数 pyinstaller -F XX.p ...
- 从JAVA内存到垃圾回收,带你深入理解JVM
摘要:学过Java的程序员对JVM应该并不陌生,如果你没有听过,没关系今天我带你走进JVM的世界.程序员为什么要学习JVM呢,其实不懂JVM也可以照样写出优质的代码,但是不懂JVM有可能别被面试官虐得 ...
- 单台服务器-利用docker搭建Redis哨兵集群模式
前言:只有一台华为云服务器,所以打算创建三个容器来模拟三个服务器了. 一:拉取redis镜像 二:拉取redis.conf文件 放在自定义的目录下:wget -c http://download.re ...
- 网络优化之net.ipv4.tcp_tw_recycle和tcp_tw_reuse参数
网络优化之net.ipv4.tcp_tw_recycle和tcp_tw_reuse参数 - 一个人默默潜行 - 博客园 https://www.cnblogs.com/ppp1314520818/p/ ...
- go语言rpc学习
rpc 就是 远程过程调用 指的是调用远端服务器上的程序的方法整个过程. rpc 理论 RPC技术在架构设计上有四部分组成,分别是:客户端.客户端存根.服务端.服务端存根. 客户端:服务调用发 ...