![](https://img-blog.csdnimg.cn/20200214094757263.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python + Selenium
基于Python的自动化测试
暗潮汹涌
已上岸体制内,得老长时间或者是不会更新测试内容啦
展开
-
Python + Selenium web自动化测试 章节索引
因为所涉及的博客较多,且是一个阶段性的写细过程,所以用这个博客来做索引,用来简单快速查找所需要的博客:1. 自动化环境的搭建:首先将web自动化测试所需环境搭建完成,才能够进行所有后续操作:传送门:https://blog.csdn.net/qq_34659777/article/details/964285602. request的使用搭建完成之后,每次使用selenium需要开启该服...原创 2019-11-06 16:18:11 · 303 阅读 · 0 评论 -
Python + Selenium(十一)- pytest.mark.parametrize及前置后置的使用
文章目录pytest.mark.parametrizepytest的前置条件与后置条件1、用例的前置与后置条件2、类的前置与后置条件3、模块的前置与后置条件4、程序的前置后置条件pytest.mark.parametrizePytest 中装饰器可以实现测试用例参数化,类似 unittest 中的DDT。语法:@pytest.mark.parametrize(‘参数名’,list)import pytestclass TestLogin: login_err_data = [{'name':'原创 2020-06-09 22:12:36 · 932 阅读 · 0 评论 -
Python + Selenium(十一)- pytest介绍与标签的使用
一、pytest对比unittestpytest能自动发现需要执行的测试用例,unittest需要使用.discover方法来指定文件夹pytest断言方便,直接使用 assert 1==1pytest 使用标签能灵活运行指定的测试用例。pytest 前置后置环境管理灵活...原创 2020-06-08 16:23:03 · 819 阅读 · 1 评论 -
Python + Selenium(三)- 页面元素的常用方法、属性和三大切换
文章目录页面元素的常用属性页面元素的常用方法三大切换:iframe切换alert切换窗口切换页面元素的常用属性tag_name:标签名btn_ele = driver.find_element(By.id,'kw')print(btn_ele.tagname) # 结果:inputtext:文本内容btn_ele = driver.find_element(By.id,'kw')print(btn_ele.text) # 结果:百度一下页面元素原创 2020-05-12 22:26:28 · 427 阅读 · 0 评论 -
Python + Selenium(三)- 等待的三种方式与区别
等待的三种方式:强制等待import time # 强制等待2stime.sleep(2)隐式等待# 如果获取不到元素,在后台等待30s,30s之后如果还没有获取到就报错driver.implicitly_wait(30)显式等待WebDriverWait(driver,30,0.5).until( EC.visibility_of_element_located( (By.XPATH,"//a[text()='新闻']") ))显式等待的条件原创 2020-05-10 21:15:51 · 1313 阅读 · 0 评论 -
pip国内镜像和ERROR: Could not find a version that satisfies the requirement virtualenv
在安装virtualenv 时,碰到了如下问题这是由于网络不稳定,因此在安装模块时,指定国内镜像pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com其后指定的 --trusted-host pypi.douban.com 是为了获得ssl证书的认证...转载 2020-02-13 18:05:37 · 2165 阅读 · 3 评论 -
Python + Selenium(十)- PO模型介绍和使用
1. PO模型介绍PO:Page Object Model ,也叫POM。指测试页面和测试脚本分离,即页面封装成类,供测试脚本进行调用优点:提交测试脚本可读性减少代码重复提高测试用例的可维护性,特别是针对UI变动频繁的项目缺点:结构复杂:基于流程进行了模块化的拆分2. PO架构3.代码介绍我的目录结构如下:base文件夹下存放着最基础的页面元素方法:例如 get_e...原创 2020-02-13 14:58:54 · 4867 阅读 · 3 评论 -
解决Selenium报错 WebDriverException: Message: ‘geckodriver‘ executable needs to be in PATH
1. 问题描述在使用方法webdriver.Firefox()时报了此错误:2.原因分析在网上搜索了一下,出现该问题的原因有两个:没有安装火狐浏览器,找不到所以报错了。这个的解决方案就是去下载一个火狐浏览器。Selenium 打开火狐浏览器需要使用的 geckodriver 没有找到。我的程序是因为第二个原因报错,所以下面详细说一下第二个原因的解决办法。3.解决方案首先去下载...原创 2020-02-09 22:35:01 · 3583 阅读 · 0 评论 -
【Python】Missing 1 required positional argument 解决方案
1. 报错描述2. 报错原因从报错代码能够看出,我这里涉及了两个类,我用A类和B类来进行描述。A类:一个方法类,其中报错的 get_element() 就是这个类下的一个方法。在该类我没有实例化B类:在 get_element() 中调用了A的 get_element() 方法。只在开头 from A import A.因为A类没有实例化,B类我也没有进行实例化,只是直接引入了这个类。...原创 2020-02-09 12:04:53 · 245409 阅读 · 5 评论 -
Python + Selenium(九)- 解决图片验证码登录或注册问题
1. 解决思路首先要获得这张验证码的图片,但是该图片一般都是用的js写的,不能够通过url进行下载。解决方案:截图然后根据该图片的定位和长高,使用工具进行裁剪裁剪完毕之后,使用工具解析该图片。2. 代码实现2.1 裁剪出验证码图片裁剪图片需要使用 Pillow 库,进入pip包路径后输入安装命令pip install Pillow:之前安装的时候忘记了截图,只能够截一张安装后的...原创 2020-02-08 14:56:20 · 2278 阅读 · 0 评论 -
Python + Selenium(八)- get_screenshot_as_file 保存截图方法的使用
Python保存截图一共有两种方法:get_screenshot_as_file(self, filename)save_screenshot(self, filename)我使用的是第一种get_screenshot_as_file(self, filename),这里详细讲一下在使用该方法时遇到的坑。原错误代码: def save_screenshot(self): ...原创 2020-02-05 14:27:39 · 10804 阅读 · 1 评论 -
Python + Selenium(七)- 弹窗的代码封装
1.弹窗类型浏览器的弹窗有三种:1.仅为提示弹窗,显示提示信息后点击确定关闭:2.选择“确定”或“取消”按钮关闭的弹窗:3.输入文本后点击确定按钮关闭的弹窗:2.解决方案针对以上三种弹窗,都有不同的解决方案。首先,我们都需要切换到弹窗模块,对弹窗进行操作:alert_element = driver.switch_to.alert然后根据类型的不同,有不同的操作代码:...原创 2020-02-04 09:52:42 · 2260 阅读 · 0 评论 -
Python + Selenium(六)- ActionChain和selector的使用
1. 什么是ActionChainactionchains是selenium里面专门处理鼠标相关的操作如:鼠标移动,鼠标按钮操作,按键和上下文菜单(鼠标右键)交互。这对于做更复杂的动作非常有用,比如悬停和拖放。actionchains也可以和快捷键结合起来使用,如ctrl,shif,alt结合鼠标一起使用当你使用actionchains对象方法,行为事件是存储在actionchains对象...原创 2020-02-02 21:53:00 · 2502 阅读 · 0 评论 -
Python + Selenium(五)- web文件上传及下载
1. 图片及文件的上传1.1 input 标签的上传以慕课网的个人设置上传头像为例:该页面的上传头像其实就是一个 type=‘file’ 的 input 标签卡,这种情况,上传头像只需要调用 webdriver 的 sendkey 方法即可:driver.find_element_by_id('upload').send_keys('D:\\photo.png')由于该元素 .hi...原创 2020-02-02 20:15:50 · 867 阅读 · 0 评论 -
Python + Selenium(四)-Python 3.7 安装 PyKeyboard
1. 为什么安装SendKeysSendKeys是一个非常好用的模拟键盘事件的小工具,最新版是0.3(虽然已经很久没有更新了。。。)2. 如何安装SendKeys2.1 先安装pyHook进入其官网,搜索pyHook找到该文件:文件前的CP37是指python的版本,命令行中直接输入py就可以查看。后面的win32是指电脑为32下载完成后,我这里放在了这个目录下 ‘E:\se...原创 2020-01-10 16:19:29 · 11120 阅读 · 7 评论 -
Python + Selenium(2.5)- 使用 Xpath 定位元素
xpath介绍和基本语法基本语法表达式描述nodename选取此节点的所有子节点/从根节点选取,绝对路径//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.选取当前节点…选取当前节点的父节点。@选取属性。绝对定位和相对定位绝对路径:每次从根节点html开始相对路径:每次只需从第一个已经找到的节点开始绝对定位的劣势:前端经常变化,加div之类的,下次就不能用了表达更加繁琐谓语条件谓语被嵌在方括号中,用来原创 2020-05-09 07:23:13 · 519 阅读 · 0 评论 -
Python + Selenium(2.5)- 使用 CssSelector 定位元素
本文转载自:https://www.cnblogs.com/sylvia-liu/p/4469597.html文章目录CssSelector常用定位1. 根据tagName2. 根据ID3. 根据className4. 根据元素属性5.查询子元素Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath lo...转载 2020-02-05 17:24:49 · 886 阅读 · 0 评论 -
【Python】配置文件的读取和写入
之前已经学习了如何获取和操作页面元素。在实际的使用过程中,操作页面元素在代码中直接操作是非常不实用的,优化方案就是将要操作的元素和操作方式写在配置文件之中,通过调用配置文件来完成相关操作。1. 配置的安装要使用配置文件,首先要安装相关扩展来读取配置文件。安装方法:进入cmd,输入命令pip install ConfigParser:...原创 2020-01-14 10:20:27 · 680 阅读 · 0 评论 -
Python + Selenium(二)-安装request包
本文基于已经完整的搭建好了之前的测试环境后的学习笔记,环境搭建:https://blog.csdn.net/qq_34659777/article/details/964285601. 使用selenium-server-standalone打开浏览器之前我们已经能够使用selenium-server-standalone打开127.0.0.1:4444站点了,进入该站点后点击“console...原创 2019-10-24 09:20:37 · 621 阅读 · 0 评论 -
Python + Selenium(一)-环境搭建
做自动化测试的好处毋庸置疑,作为一个测试人员,从功能测试转向自动化测试也是一条必经之路。但是踏上这条路后,我们需要经历很多。1. 功能都能自动化?在学习自动化之前,或者是很多的局外人都认为,无论什么功能都可以自动化。这是一个思想的误区,将一个功能自动化,需要考虑很多方面,主要有:能不能做?谁来做?怎么做?做多久?产出是什么?这个产出的复用性强不强?如果你将医生方面都充分考虑并...原创 2019-07-18 12:51:08 · 517 阅读 · 2 评论 -
Python + Selenium 为什么要做web自动化 和 web 自动化基础
web 自动化基础js操作页面获取页面标签获取标签的方式通常,通过JS操作HTML元素,可以使用内置对象document的方法来找到该标签。通过id找到HTML元素(常用)document.getElementById()通过标签名找到HTML元素获取出来的是列表getElementByTagName()通过类名找到HTML元素(通过类名查找HTML元素在IE 5...原创 2020-05-06 19:59:25 · 962 阅读 · 0 评论 -
【Python】使用selenium操作隐藏的元素
本文转载自:https://www.cnblogs.com/fnng/p/5365900.html有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了。例如,下面的情况:或者这种:页面主要通过“display:none”来控制整个下拉框不可见。这个时候如果直接操作这个下拉框,就会提示:from selenium import webdriverfrom ...转载 2019-12-20 17:59:23 · 2454 阅读 · 0 评论 -
【Python】pip的安装及使用,安装selenium出错时请看
今天在新的电脑上配置selenium环境时,Python环境已经安装成功,但是使用匹配安装selenium时报错:“Unknown or unsupported command 'install'”原因可能是 pip 并未安装。首先进入 pip安装地址,下载压缩包:进入到pip解压缩文件夹,并且执行python命令:python setup.py install,出现finish...原创 2020-02-01 20:58:41 · 2804 阅读 · 1 评论 -
【Python】使用pip安装requests提示:unknow or unsupported command install的解决办法
在学习Python时,因为要使用 webdriver ,必须要安装 request 。于是使用命令pip install requests,但是报如下错误:这是因为在我的电脑中有多个地方都安装了pip服务,系统不知道使用哪一个服务。所以解决方案如下:使用where pip来寻找对应的pip服务路径进入要使用的 pip 服务的路径再执行之前要执行的命令pip install reque...原创 2019-10-20 18:49:47 · 2495 阅读 · 0 评论