今天我们学习下如何使用python编写web自动化,谈到web自动化,那么我们需要了解下市面上做web自动化的几种方式,Robotframework工具,网红WebUI自动化测试神器 - Cypress,以及我们今天所要学习的selenium,为什么使用selenium?上手快,开源免费,市面上使用率较高。

selenium的工作原理就是使用代码,驱动浏览器的驱动器,对浏览器的页面进行定位以及操作。首先我们先配置下使用前的环境:

1,python环境(之前课程有提到,可翻阅之前文章)

2, 下载浏览器驱动:https://npm.taobao.org/mirrors/chromedriver?spm=a2c6h.14029880.0.0.735975d7ddL0Xs(可在百度直接搜索:NPM镜像下载),下载完成之后放在所需python安装主目录下。

3, 安装selenium:打开电脑cmd终端,直接输入命令(pip install selenium)

注意:1,浏览器驱动要根据自身浏览器版本适配下载

2,驱动下载完成后,放在python安装主目录下面

3,浏览器目前市面上主要以谷歌浏览器与火狐浏览器,下载驱动时,注意不同的浏览器的驱动不同

配置完成后,我们可以在cmd电脑终端查看,安装是否正确,接下来我们以谷歌浏览器为例:

以上示例,我们先进入python环境下,导入selenium中的webdriver驱动,然后定义一个变量driver = webdriver.Chrome(),这个时候我们运行代码,如果发现浏览器被我们打开了,那么说明我们的环境已经配置完成,如果发现配置存在问题的同学可以参照如下示例:https://www.cnblogs.com/htybky/p/11747367.html

当以上环境配置完成后,我们可以先参照一个实例:

from selenium import webdriver      #导入驱动from time import sleep             #导入一个等待时间的包driver = webdriver.Chrome()       #打开浏览器driver.get('https://www.baidu.com/')sleep(5)                #等待5秒

以上代码运行结果我们可以看到,打开了谷歌浏览器,然后进入了百度页面。

selenium的原理是通过驱动对浏览器的页面进行操作,首先我们需要定位到也免得元素才能对页面元素进行,点击,输入等操作,那么我们先来了解下如何定位页面元素,这里涉及到前端html的简单知识。首先我们在浏览器中打开开发者工具F12,这里我们关注elements栏目,右边部分则对应这整个页面的html元素信息。

我们可以通过开发者工具的左上角的箭头,进行元素的查看。

如上我们根据上述步骤,查看百度输入框这一元素的html信息,开发者工具组则展示了类型为iuput,id的值为kw,name的值为wd,对于html只需进行一个最简单的了解即可。

那么接下来我们需要知道定位元素的8种方法:

1,Id

2,Name

3,Classname

4,Tagname

5,linkText

6,partialLinkText

7,Xpath

8,cssSelector

以上八种元素均可进行元素的定位,具体使用需根据实际html页面情况,目前用的比较多的是xpath方法。

接下来我们针对百度这个页面一一进行演示:

id,name定位方式:

from selenium import webdriver      #导入驱动driver = webdriver.Chrome()       #打开浏览器driver.get('https://www.baidu.com/')driver.find_element_by_name('wd').send_keys('零基础Python自动化')    #输入内容driver.find_element_by_id('su').click()   #点击搜索

首先我们可以看到定位元素使用的是find_element_by_的方法,然后采用id,name的方法定位到元素,send_keys()是针对输入框进行的输入操作,括号内的值只能是string类型,click()则是点击的操作,我们在百度输入框中输入'零基础Python自动化',然后点击搜索。

Classname定位:

仔细查看你会发现存在一个class='s_ipt',以下实例:

driver.find_element_by_class_name('s_ipt').send_keys('零基础Python自动化')    #输入内容

tagName定位:

如果某个页面的元素此标签类型只有一个,那么我们也可以使用tagName进行定位:

driver.find_element_by_tag_name('input')    

linkText定位:

linktext是指超链接文本定位,是某个文本具有超链接性质,可以通过此定位

"http://mp.weixin.qq.com/mp/homepage?__biz=MzI2MjY3OTU1Nw==&hid=2" class="gray" target="_blank">零基础Python自动化</a>

以上展示html元素,则linktext定位如下:

driver.find_element_by_link_text('零基础Python自动化')

partialLinkText定位:

模糊超链接文本定位,我们以上个超连接的html示例进行定位

driver.find_element_by_partial_link_text('零基础Python')

xpath定位:

接下来我们可以重点了解一下xpath定位元素,目前公司里的项目几乎都可以使用xpath进行定位,xpath可以使用绝对路径,也可以使用相对路径。

以上我们看到的就是选择xpath的定位方式,然后进行下面代码的编辑!

driver.find_element_by_xpath('//*[@id="kw"]').send_keys('零基础Python自动化')    #输入内容

css定位:

如上图我们既可以copy_xpath,也可以copy_selector

driver.find_element_by_css_selector('#kw')

以上的知识学会,我们就可以做一个简单的selenium自动化了。那么今天的学习先到这里,希望大家可以多看多练!

关注下方,学习更多知识!

html 打开页面光标自动选中输入框_初识selenium之web自动化相关推荐

  1. html 打开页面光标自动选中输入框_Python自动部署码云:

    Python自动部署码云: 1:大概思路: 其实还是打开浏览器登录,只不过不用你自己再一步一步登录部署干啥.python代替你完成了这个过程.我用的谷歌浏览器,谷歌真香,用的人都说爽. 2:下载chr ...

  2. pythonselenium教程模拟鼠标和键盘_【02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!...

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

  3. 当鼠标滑过文本框自动选中输入框内容JS代码

    代码: <html> <head> <title>响应鼠标自动选中文本框内容</title> </head> <body> &l ...

  4. java超时自动关闭_[Java教程]web页面超时自动退出方法_星空网

    web页面超时自动退出方法 2017-05-18 0 思路: 使用 mousemover 事件来监测是否有用户操作页面,写一个定时器间隔特定时间检测是否长时间未操作页面,如果是,退出: 具体时间代码如 ...

  5. python写自动脚本下载_如何使用python写自动化脚本?

    第一次听到脚本,会不会觉得特别厉害呢?小编就有这样的感觉,事实上,脚本确实真的很厉害,能解决我们软件运行的大小问题,比如游戏时候,脚本也是很常见的哦~下面就教大家写脚本,一起来学习下吧~ 准备工具: ...

  6. git关闭密码自动存储_RobotFramework实战篇PC端web自动化demo及持续集成

    自己学习自动化的话,除了要选好一款框架之外,还要选好一个用来练习的项目.这里小编推荐新手入门可以考虑一下Robotframework这个框架,原因:该框架的学习成本比较低,很多功能都是现成的,而且脚本 ...

  7. 移动设备input输入框点击后自动选中内容_带你用 Python 实现自动化群控(入门篇)...

    1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 Hui 产绑定在一起! 事实上,群控在自动化测试中也被广泛使用!接下来的几篇文章,我将带大家 ...

  8. 如何在html中自动播放音乐,如何使音乐在打开页面时自动播放

    你好朋友, 给你一个自动播放的背景音乐代码: 第一步.进入新浪博客,输入"登录名""密码"和"验证码"后点击"登入". ...

  9. 打开页面js自动加载的方法

    一.js方法: 1.在body标签加onload属性: 例:<body οnlοad="myfunction()"> 2.window.onload方法 例: < ...

最新文章

  1. 深度学习并非万能:你需要避免这三个坑
  2. 未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集...
  3. 插图 引用 同一行两个插图_为什么插图是产品的重要组成部分
  4. 用new和delete运算符进行动态分配和撤销存储空间
  5. oracle date引入哪个包,oracle 索引字段包含date类型,使用spring jdbc更新时不走索引,而是走table access full的问题...
  6. k8s部署应用nginx
  7. yaml文件中Map集合的key、value的坑
  8. 学材分析计算机一体化,计算机一体化课教案.doc
  9. 小O地图EXE版V0.9.5.5 - 功能总览
  10. 程序员约架事件中,薛非到底是因为不会用Github还是不会写Tokenizer而没有应战?...
  11. (附源码)php单招志愿采集系统 毕业设计 091409
  12. 2021-10-18_windows实时查看Nvidia显卡使用情况
  13. hanoi塔经典递归算法
  14. tesseract-ocr 识别图片中的数字
  15. 诺基亚如何利用计算机上网,诺基亚手机连接wifi的方法步骤
  16. html5 自动扣图,html5利用canvas实现颜色容差抠图功能
  17. 1. 什么是元组(tuple).md day07
  18. 从人力资源管理的角度看孙悟空大闹天宫
  19. 耳机不分主从是什么意思_【“沃”新品】TWS真无线蓝牙耳机 彰显品质生活!...
  20. CPU内部结构及工作原理

热门文章

  1. 25个python相关的基础概念总结
  2. 配置所需要的依赖_Maven依赖管理之依赖传递
  3. 陕西活性炭需求分析_20212027年中国粉末活性炭行业市场发展现状调研与投资趋势前景分析报告...
  4. CSDN Markdown 博客如何设置插入代码背景颜色(设置成黑色)?
  5. Tomcat的热部署和重新启动和重新部署的关系
  6. Canal全方位深入讲解,看这一篇就够了
  7. Spring Cloud Alibaba:Sentinel 熔断降级
  8. opencv java 摄像头_使用OpenCV Java创建Windows摄像头扫码程序
  9. Mybatis 一对多 结果集映射 简单入门 易懂
  10. oracle10g 04030,一次ORA-04030问题的诊断(一)