Python之web自动化
比菜鸟更容易让小白理解的Python编程语言,帮助小白从Python零基础入门到实战--实现自动化测试,告别点点点,本人之前就是一个代码零基础的小白,这套python专栏的博客,就是我在学习的过程中总结的笔记,非常适合没有基础的小伙伴学习
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
謹言
测试工程师(世上没有白走的路,每一步都算数)
展开
-
Python--web自动化的学习目录
selenium环境安装+原理讲解+selenium介绍selenium基础操作web自动化测试的执行步骤Selenium的八种定位方式以及find_element 和 find_elements 的区别验证通过某个表达式能不能找到元素或者判断页面中存不存在某个元素的方法...原创 2021-03-04 19:29:48 · 421 阅读 · 1 评论 -
selenium环境安装+原理讲解+selenium介绍
1.SeleniumSelenium是做Web应用程序功能自动化测试的工具(框架)-- 可以使用自动化的方式操作你的浏览器。说明:Web应用程序是B/S构架的应用程序,通俗的说,就是网站。功能测试也可以狭义的叫做UI自动化、界面自动化。Selenium官网:http://seleniumhq.org/2.Selenium套件: selenium IDE -- 脚本录制工具 selenium webdriver selenium grid -- 远程 3.sele.原创 2021-03-02 23:40:32 · 486 阅读 · 0 评论 -
Selenium+WebDriver 各浏览器驱动下载与使用
因为用的电脑是Mac,所以在里边会有很多不兼容的软件,而且想自学爬虫技术,本来想安装火狐和驱动文件,但是有时候火狐不太兼容selenium,所以我弄了谷歌浏览器下载,至少脚本可以顺利调用。1. 首次使用前需要安装谷歌浏览器和驱动文件,驱动文件版和浏览器版本一定要对应,否则就无法调用。如果已经下载了谷歌浏览器,可以查看自己的谷歌的版本,只需输入地址栏:chrome://version/这是我的谷歌浏览器的版本号,最后一位小数点后面的不要比如我的版本号是81.0.4044.92,只复制81.0.404原创 2021-07-17 17:51:50 · 240 阅读 · 0 评论 -
数据驱动DDT
数据驱动思想介绍:参数化, 数据驱动, DDT 说的是一个意思数据驱动是一种思想, 参数化是实现数据驱动的手段形式。DDT: data-driven testing 数据驱动测试用数据驱动的场景: 如果有同一套代码,但是只有数据不一样的时候用数据驱动。就是当测试用例所有的逻辑都一样,只有数据不同的时候,我们可以把数据提取出来,然后用数据去分别带入测试用例函数当中数据驱动不是万能的,有些场景不适合用数据驱动。数据驱动的好处:- 实现了数据和代码的分离,好维...原创 2021-07-15 15:14:49 · 508 阅读 · 1 评论 -
如果元素仅出现几秒就消失怎么定位
可以在 f12 中找到Sources 右边有一个暂停的按钮,当元素出现的时候点击暂停按钮,然后定位元素就可以了原创 2021-07-15 11:14:57 · 974 阅读 · 0 评论 -
web 自动化测试优化流程
自动化测试优化流程1、启动浏览器,条件反射加一个隐性等待。2、最大化窗口3、PO 模式 - 每一个页面当中的操作行为封装成了方法 - 页面 url 优化成类属性 - 尽量让方法的返回值返回一个 PageObject 对象,可以是 self, 也可以是其他的页面对象。 - 为什么返回po对象,方便链式调用...原创 2021-07-15 11:09:58 · 173 阅读 · 0 评论 -
python+selenium 浏览器驱动下载
Chromedrive下载版本可参照Selenium Chrome版本与chromedriver兼容版本对照表下载地址各版本下载地址geckodriver下载地址淘宝npm镜像https://npm.taobao.org/mirrors/geckodriver/iedriver下载地址http://selenium-release.storage.googleapis.com/index.htmlphantomjs驱动下载地址http://phantomjs.org/do转载 2021-07-15 10:11:45 · 458 阅读 · 0 评论 -
PO 模式
啊啊原创 2021-07-14 11:42:20 · 318 阅读 · 0 评论 -
自动化测试流程
测试流程1、需求分析(熟悉业务,最好已经做过多次手工测试)2、测试方案。 为什么要自动化,主要应用场景,主要使用模块,技术选型和对比,方案特点和优势、具体运行手册、产出和效率、运行策略、维护。3、用例编写4、用例评审5、运行用例(代码编写)6、报告做自动化测试要先做手工测试,需要对业务流程很熟悉,没有做手工测试之前,不建议做自动化自动化适用场景需求稳定,不会频繁变更。研发和测试周期长,需要频繁执行回归测试需要在多种平台上重复运行相同测试的场景某些测试项目通过手工测试无法实现原创 2021-07-13 23:02:37 · 174 阅读 · 0 评论 -
文件 上传
第一种方法:input 可以直接通过 send_keys,发送文件路径from selenium import webdriverimport timedriver=webdriver.Chrome()driver.implicitly_wait(10)driver.get("url")# 文件上传# input 可以直接通过 send_keys,发送文件路径f=driver.find_element("id","mfile")f.send_keys(r"文件路径")time..原创 2021-07-13 18:22:52 · 125 阅读 · 0 评论 -
JS的操作之 窗口滚动的操作
窗口中,左上角为原点,也就是x =0,y=0,右上角的坐标 y = 0,左下角的坐标 x = 0滚动到窗口的哪个像素:window.scrollTo(x,y)如果x轴不变,那么x轴就是0滑动到窗口最底部window.scrollTo(0,document.body.scrollHeight)滑动到窗口中间window.scrollTo(0,document.body.scrollHeight/2)将元素滑动到可是范围内1)找到需要定位的元素2)将元素滚动到...原创 2021-07-13 18:17:31 · 1835 阅读 · 0 评论 -
JS的操作之 日期控件的操作
通过组件找不到元素在哪里,无法定位元素的时候,就可以通过写js语句修改value属性比如日期控件第一步:编写JS语句1)打开12306网站,找到日期控件,定位输入日期的元素2)编写js代码,改变日期以上三句js语句实现了最终选择的日期(第一步可以省略,直接在python中写也可以,有第一步的目的是因为初学者对js语句不熟悉,因为在pycharm中没有js的提示,而在console中有提示,这样直接复制到python中即可,不容易出错)第二步:python实现自动化..原创 2021-07-13 17:32:29 · 865 阅读 · 0 评论 -
web页面组成之DOM对象
DOM 对象的document 是最重要的可以通过对象的方式修改浏览器的页面DOM(Document Object Mode)的全称是文档对象模型,是W3C组织推荐的处理可扩展标志语言的标准编程接口。他提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM将文档解析为一个由节点和对象(包含属性和方法)组成的结构集合。简言之,他会将web页面和脚本或程序语言连接起来。...原创 2021-07-13 16:45:45 · 191 阅读 · 0 评论 -
简单的js操作
selenium 是对 js 指令的封装selenium 当中只封装了部分的浏览器操作有哪一些指令在selenium中shi原创 2021-06-18 17:08:28 · 118 阅读 · 0 评论 -
面试题:报错无法定位元素,出现的原因可能有哪些?
1、元素定位是否正确2、如果元素表达式没有问题就要考虑下面几点原因:是否涉及到窗口切换3、是否存在iframe4、是否设置等待原创 2021-06-18 16:53:36 · 234 阅读 · 0 评论 -
下拉框操作
"""select"""import timefrom selenium import webdriverfrom selenium.webdriver.support import expected_conditionsfrom selenium.webdriver.support.select import Selectfrom selenium.webdriver.support.wait import WebDriverWaitdriver = webdriver.Firefox(.原创 2021-04-01 22:28:52 · 148 阅读 · 1 评论 -
键盘操作
键盘操作例如:按回车键提交from selenium import webdriverfrom selenium.webdriver import ActionChainsfrom selenium.webdriver.common.keys import Keysdriver = webdriver.Firefox()driver.implicitly_wait(10)driver.get('http://www.baidu.com')input = driver.find_ele原创 2021-04-01 22:18:12 · 170 阅读 · 0 评论 -
其他定位方法
1.link text定位:只适用于定位标记名称是a的超级链接,不适用于其他标记的元素,使用超级链接的文本来实现元素的定位,其中文本指的是<a>与</a>之间的完整文本字符串。案例:<a href="user.php?act=logout">退出</a>示例:写法一:quit=driver.find_element(By.LINK_TEXT,"退出")写法二:quit=driver.find_element_by_link_tex原创 2021-03-10 11:29:19 · 402 阅读 · 0 评论 -
找元素调用的方法
标准写法driver.find_element('class name', 'abc')上面的写法还可以写成下面的样子driver.find_element(By.CLASS_NAME, 'abc')以下写法也可以,但是不推荐原因是:1、不灵活2、即将被 selenium 4.0 官方弃用driver.find_element_by_class_name('abc')...原创 2021-03-09 23:59:33 · 164 阅读 · 0 评论 -
鼠标的操作
手工测试时的鼠标操作:1、单击 2、悬停,移动3、双击4、右击5、拖拽自动化测试鼠标操作:如果要进行自动化操作鼠标,首先要导入一个 ActionChains类from selenium.webdriver import ActionChains创建一个driver对象driver = webdriver.Firefox()driver.implicitly_wait(4)driver.get('file:///D:/classes/web_auto_testin.原创 2021-03-07 22:25:43 · 269 阅读 · 0 评论 -
alert 弹出框的操作
1.Alert对象:是Selenium WebDriver中专门处理弹出框的一种对象,这种对象我们不需要导入它,也不需要实例化,只需要调用切换对象的alert属性就可以获得该对象实例。2.切换到弹出框语法:变量=driver.switch_to.alert说明:alert, 没有括号,也不需要传参数, 全局只有一个3.Alert对象的属性:text,记录弹出框里的当前文本字符串。4.Alert对象的两个操作函数:(1)accept函数:无参,点击弹出框里的“确定”或“OK”或“是”等肯定答案.原创 2021-03-07 00:08:57 · 4527 阅读 · 0 评论 -
切换Frame
1.Frame介绍:Frame是html语法中的框架技术,可以支持frame或iframe标记,用于在一个主网页里嵌套显示多个子网页,网页之间也可以多层嵌套。2.切换Frame应用场景:当定位元素失败(抛出NoSuchElementException)时,如果确认过定位条件没有问题,前面的等待时间也是足够的情况下,建议查看页面源代码,目标元素的祖先节点中是否存在一个名称是frame或iframe的标记,如果有,就需要切换Frame。说明:只有frame或iframe才需要切换,frameset不原创 2021-03-06 23:57:18 · 1568 阅读 · 0 评论 -
窗口之间的切换
1.应用场景:如果在自动启动的一个浏览器窗口网页里做了一些操作,一般是点击超级链接或点击按钮等后,有一个新的浏览器窗口出现(新窗口也可能展示为一个新的浏览器标签页),就需要切换到新窗口里,才能操作其中的网页。2.语法:driver.switch_to.window(窗口句柄)3.窗口句柄(Window Handle):是窗口的唯一标识,操作系统在启动一个窗口时,就会给它分配一个新的窗口句柄。窗口句柄不是网页设计者在html里写的一个数据,所以我们测试人员也无法通过调查网页源代码来分析出这个数据。原创 2021-03-06 19:00:52 · 425 阅读 · 0 评论 -
三种等待操作
1、应用场景:页面跳转时,需要等待新网页里的元素能被定位到才继续操作,还有一些业务,步骤之间本身存在等待的需求,必须等待自动跳转网页才能进行下一步操作。2、有三种等待方式:有三种等待方式,分别是:强制等待、隐性等待、显性等待。1)强制等待:强制等待固定的时间,使用Python语言提供的time模块里的sleep函数,参数是以秒为单位的固定时间数。说明:必须提前导入time模块里的sleep,语法 from time import sleep,然后才能调用sleep函数,示例sleep(5.原创 2021-03-06 18:30:10 · 2806 阅读 · 0 评论 -
定位方法之css selector定位
1.css层叠样式表,修饰html或xml的文件样式,css里包含selector选择器的技术,可以选择界面上的元素(也就是我们所说的定位元素),可以像xpath一样描述元素的特征或路径。优点是比xpath定位元素速度更快、更简洁短小,缺点是功能没有xpath强大,不能向前查找。css定位和xpath定位是相似的,所以重点掌握一个即可,建议使用xpath,了解css定位即可。2.使用css selector定位,参数写css语法中的定位表达式(1)语法一:find_element_by_css_sel原创 2021-03-06 15:40:59 · 4486 阅读 · 0 评论 -
定位方法之xpath定位
1.两个概念:(1)xml:可扩展标记语言,是对HTML的扩展,语法和HTML相似,只是它的标记和属性是可以自己根据业务需要来定义的,而HTML里的标记和属性都是固定的。(2)xpath:xml path,就是xml路径语言,是在xml里查找元素或属性的一种技术,用描述元素在整个文件里所在路径的方式来查找信息。(简单来讲就是元素的路径)说明:html可以被看做是标记固定的一种xml,所以xpath也可以应用于html里查找元素,而selenium WebDriver里的xpath定位就是使用xpa原创 2021-03-05 01:21:39 · 2877 阅读 · 2 评论 -
web自动化测试之HTML基础
1.HTML:超文本标记语言,是网页的设计语言,测试人员需要熟悉如何解析HTML,不用书写HTML,解析HTML之后才能找到定位页面上元素的方法,定位元素后才能操作和检查。2.标记:也叫作标签,用<>表示。(1)单标记:<标记 属性1='值1' 属性2='值2' 属性3='值3'/>(2)双标记:<标记 属性1='值1' 属性2='值2' 属性3='值3'></标记>3.HTML文档以<html>开始,以</html>原创 2021-03-04 19:35:29 · 255 阅读 · 1 评论 -
验证通过某个表达式能不能找到元素或者判断页面中存不存在某个元素的方法
方法一if driver.find_elements_by_name('w'): # 返回的是空列表 [] print("元素存在")else: print("元素不存在")方法二try: driver.find_element_by_name('w') print("元素存在")except: print("元素不存在")...原创 2021-03-04 00:35:39 · 356 阅读 · 1 评论 -
Selenium的八种定位方式以及find_element 和 find_elements 的区别
Selenium的八种定位方式?与name有关的有三种:name、class_name、tag_name与link相关的有两种:link_text、partitial_link_text与id有关:id全能选手:xpath、css_selectofrom selenium import webdriver#获取谷歌浏览器driver = webdriver.Chrome()#打开豆瓣网页driver.get('http://www.douban.com')#查找属性名称为:.原创 2021-03-04 00:32:33 · 5635 阅读 · 1 评论 -
web自动化测试的执行步骤
手工测试:打开浏览器 输入网址 点点点 断言(测试是不是到了预期页面) 输出测试报告自动化测试:打开浏览器 输入网址 点点点(先找到输入、点击的元素在哪里---元素定位) 断言(测试是不是到了预期页面) 输出测试报告例如:from selenium import webdriverdef test_start_selenium(): # 测试步骤 driver = webdriver.Chrome() driver.get('http://www原创 2021-03-03 23:16:07 · 366 阅读 · 1 评论 -
selenium基础操作
selenium基础操作# 使用 seleniumfrom selenium import webdriver# 得到一个浏览器对象browser = webdriver.Chrome()# 打开一个网页browser.get('http://www.douban.com')#打印标题print(browser.title)#打印URLprint(browser.current_url)#打印源码print(browser.page_source)# 刷新页面browser.原创 2021-03-02 23:59:37 · 502 阅读 · 0 评论