
Python+Selenium自动化
karry_孙二
学习记录
展开
-
jenkins执行python+selenium取消无头模式
在win10本地安装的jenkins上构建web自动化任务,最后运行结果正常,但是运行的过程没有显示出来,想直观的看到运行的过程步骤如下:1.在本地安装一个tomcat,下载jenkins.war放在tomcat的webapps下2.想要启动jenkins必须先启动tomcat。在tomcat-bin下双击startup.bat启动tomcat成功启动后 访问http://localhost:8080/jenkins/3.在jenkins上面重新构建web脚本。执行成功,执行..原创 2021-11-01 08:39:52 · 739 阅读 · 0 评论 -
Python+Selenium-20-图片验证码处理
前言有些注册页面会含有验证码,本篇描述在selenium中对验证码的处理实例需求打开万维易源注册页面:https://www.showapi.com/auth/reg (这个是第三方api平台易源接口,后面验证码识别用的就是他的)在注册页面中包含验证码的操作需求分析1)打开控制台,点击上方截图中的验证码图片,在network中会有一条请求信息(这里为获取验...原创 2019-08-20 17:02:23 · 6878 阅读 · 2 评论 -
Python+Selenium-19-expected_conditions模块使用
前言当我们打开一个url后,判断打开的页面是否正确,有两种方式:1)判断打开页面的title是否等于或包含预期值① 需要导入模块:from selenium.webdriver.support import expected_conditions②expected_conditions.title_contains 标题包含(多用);titile_is 标题等于2)判断...原创 2019-08-20 09:54:21 · 1677 阅读 · 1 评论 -
Python+Selenium-18-富文本
前言简单的文本输入框,如input、textarea框直接定位到元素后send_keys就可以了;富文本一般是嵌入在iframe页面中提交的,iframe中一般是一个空的html,其中显示的内容即是body中的内容。以csdn写博客为例右击查看思路(步骤)1)基于上一篇讲解的,可以用到加载配置文件方式来免登陆操作(毕竟登录也是挺麻烦的还有图片验证啥的)2)点...原创 2019-06-21 17:28:31 · 628 阅读 · 0 评论 -
Python+Selenium-17-加载chrome配置文件
前言在做selenium ui自动化的时候,我们可以加载浏览器的配置文件来保持登录状态(会话)等,即我们可以加载后直接操作,无需再次进行登录操作怎么查看配置文件存放路径打开浏览器输入:chrome://version/下发的个人资料路径如下,我们可以copy一下查看文件夹代码部分# coding:utf-8from selenium import ...原创 2019-06-20 12:30:28 · 618 阅读 · 0 评论 -
Python+Selenium-16-iframe标签
前言有时候明明我们有正确定位元素,但是执行时还会报错说元素不存在,这时候就要去看看是不是页面有iframe或者frame标签了。iframe标签正常用在表单提交的地方,如登录页面等qq空间登录为例地址:https://qzone.qq.com/查看页面元素,都含有id,可以直接使用id来定位代码如下(此处还没有去处理iframe标签的问题)from selen...原创 2019-06-19 17:20:10 · 417 阅读 · 0 评论 -
Python+Selenium-15-alert/confirm/prompt弹框处理
弹框处理1.webdriver中处理JavaScript所生产的alert、confirm以及prompt是很简单的。2.switch_to.alert方法定位到alert/confirm/prompt。然后用text/accept/dismiss/send_keys按需进行操作(1)text: 返回 alert/confirm/prompt 中的文字信息。(2)accept :点...原创 2019-01-08 15:25:10 · 1025 阅读 · 0 评论 -
Python+Selenium-14-get_screenshot_as_file保存截图
保存截图所谓有图有真相,在测试过程中遇到错误的时候最好截图保存下来,最后在生成测试报告的时候可以一并附上常用的保存截图的方法get_screenshot_as_file();方法中的参数为保存的路径注意点:最好保存为png格式,保存为其他格式如:jpg,也不会报错,生成的截图也可以查看,但是运行时会有一个警告,当然警告也可忽略,不影响程序运行代码部分这里是登录为例,登录失...原创 2019-01-08 09:41:01 · 2440 阅读 · 0 评论 -
Python+Selenium-13-switch_to.window切换窗口
切换窗口使用场景(1)点击右侧某一个来访用户,会重新打开一个新tab(2)新开的页面,是来访用户的主页,包含用户名(3)我们现在做这样一件事,就是判断我们点击的“来访用户”与链接跳转的用户主页是否对应比如:我们点击的是“羿飞教育管理员”这个来访用户,点击后,会进入管理员的主页思路(1)先定位到最近来访中的某个用户(列表第一个为例),保存下用户名,点击...原创 2019-01-08 08:54:39 · 5052 阅读 · 2 评论 -
Python+Selenium-12-执行js脚本控制滚动条
执行js脚本控制滚动条什么时候会操作滚动条(1)webdriver就是模拟浏览器去查找并操作元素,当页面很长的时候,有些元素我们在打开浏览器后并不会在当前窗口显示,那么定位的话肯定是会报错的,此时就需要通过操作滚动条来让“目标元素”显示在当前窗口(2)如果滚动条是作为一个页面元素的(就是查看源码能查找到这个元素),可以直接通过定位到这个元素,用模拟键盘DOWN键操作,driver.fi...原创 2019-01-05 09:45:02 · 661 阅读 · 1 评论 -
Python+Selenium-11-is_displayed和is_selected
is_displayed和is_selectedis_displayed():判断元素是否显示is_selected():判断元素是否选中状态以百度登录为例,脚本验证登录页面“下次自动登录”默认勾选状态代码实现代码# coding:utf-8from selenium import webdriverimport timebrowser = webdriv...原创 2019-01-05 08:37:07 · 9198 阅读 · 1 评论 -
Python+Selenium-10-获取元素text属性值
获取元素text属性值Selenium获取响应元素的文本属性值用来校验如:公司网站登录页面,输入正确用户名错误密码点击登录,会提示“密码账号不正确!”思考:如何用脚本去做这样的判断?答:脚本实现点击登录时去获取这个元素的text,判断与界面显示的“密码账号不正确!”一致,一致就代表测试通过,前台提示正确代码实现代码# coding:utf-8from...原创 2019-01-04 09:03:28 · 17464 阅读 · 4 评论 -
Python+Selenium-9-上传文件
新建一个register.html文件(页面效果如图)需求点击上传,上传一张jpg图片上传文件只要定位上传按钮,通过send_keys添加本地文件路径就可以了,绝对/相对路径都可以这里的文件可以是图片、文档、表格、视频等绝对路径按【F:\\aaa\\bbb\\ccc\\d.jpg】格式代码# coding:utf-8from selenium impor...原创 2018-12-22 16:35:40 · 193 阅读 · 0 评论 -
Python+Selenium-8-下拉框处理
新建一个register.html文件(页面效果如图)籍贯下拉选项默认显示为第一个选项“北京”需求:访问页面,选择注册页面【籍贯】下拉框中的第三个选项“广州”代码# coding:utf-8from selenium import webdriverimport osfile_path = "file:///" + os.path.abspath("reg...原创 2018-12-22 16:20:59 · 919 阅读 · 0 评论 -
Python+Selenium-7-定位一组元素
find_elementsWebElement接口提供了定位一组元素的方法find_elements用于批量操作对象,比如多选框的勾选新建一个register.html文件(页面效果如图)需求:访问页面,将注册页面【爱好】这个多选框全部选中代码# coding:utf-8from selenium import webdriverimport o...原创 2018-12-22 14:53:42 · 562 阅读 · 1 评论 -
Python+Selenium-6-浏览器基本操作
浏览器基本操作浏览器加载URLdriver.get("https://www.baidu.com/")浏览器最大化driver.maximize_window()设置浏览器宽、高# 参数数字为像素点,设置浏览器宽高都为800像素driver.set_window_size(800,800)控制浏览器前进、后退driver.forward()driver....原创 2018-12-22 13:46:10 · 255 阅读 · 0 评论 -
Python+Selenium-5-driver.page_source获取页面源码
driver.page_sourceselenium的page_source方法可以获取到页面源码跟爬虫有点相似,获取到页面资源,提取出我们需要的信息案例以煎蛋网为例,获取首页的全部title(获取页面源码 -- 使用re正则提取需要的title)代码#coding:utf-8from selenium import webdriverimport recla...原创 2018-12-22 12:49:36 · 31894 阅读 · 0 评论 -
Python+Selenium-4-操作元素
webdriver中常见的操作元素方式clear:清除元素的内容clear() 用于清除输入框的默认内容登录框一般默认会有“账号”、“密码”等提示信息,如果直接输入内容,可能会与输入框的默认提示信息拼接,从而造成输入信息错误,所以建议输入前先clear()send_keys:在元素上模拟按键输入send_keys("xxx") 用于在一个输入框里输入xx内容当我们在s...原创 2018-12-02 21:56:51 · 516 阅读 · 0 评论 -
Python+Selenium-3-实例:[我爱我家]网站测试登录脚本实现
用脚本实现“我爱我家”网站的登录操作分析登录:有两个参数,用户名和密码,查找到这两个元素输入后点击登录操作断言:判断是否登录成功可以用登录后的用户名来检验selenium+unittest脚本实现代码#coding:utf-8from selenium import webdriverimport unittestclass Login5i5j(unit...原创 2018-12-02 21:24:40 · 721 阅读 · 0 评论 -
Python+Selenium-2-定位元素(八种定位方式)
元素定位webdriver提供了一系列的元素定位方法元素 webdriver中的方法 id find_element_by_id() name find_element_by_name() class name find_element_by_class_name() tag name find_element_by_tag_name() ...原创 2018-12-02 20:21:02 · 2840 阅读 · 0 评论 -
Python+Selenium-1-环境搭建
selenium工作原理1)client端(即我们的自动化脚本)通过driver启动Remote Server(即浏览器)2)此时client与server就创建了一个session,通过http向浏览器发送请求;3)浏览器接受到client端发送的请求之后,会去解析请求并执行相应的操作4)将结果返回给client端。响应{"msg":"successful"}安装步骤1)...原创 2018-11-16 10:39:19 · 180 阅读 · 0 评论