随笔分类 -  PythonSelenium

摘要:总结了Python+selenium常用的一些方法函数,以后有新增再随时更新: 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: maximize_window() 设置窗口参数:set_window_size(600,800) 阅读全文
posted @ 2018-01-09 10:22 Silence&QH 阅读(13351) 评论(2) 推荐(1) 编辑
摘要:系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常。那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了 判断 alert 源码分析 class alert_is_present(object): """ Expect an alert to be present.""" """ 阅读全文
posted @ 2017-12-12 15:17 Silence&QH 阅读(6399) 评论(1) 推荐(0) 编辑
摘要:判断文本 在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名。在前面的登录案例中,写了一个简单的方法,但不是公用的,在 EC 模块有个方法是可以专门用来判断元素中存在指定文本的:text_to_be_present_in_element。另外一个 阅读全文
posted @ 2017-12-11 16:21 Silence&QH 阅读(3626) 评论(0) 推荐(0) 编辑
摘要:判断 title 获取页面 title 的方法可以直接用 driver.title 获取到,然后也可以把获取到的结果用做断言。本篇介绍另外一种方法去判断页面 title 是否与期望结果一种,用到上一篇判断元素(expected_conditions)提到的 expected_conditions 模 阅读全文
posted @ 2017-12-11 15:48 Silence&QH 阅读(1101) 评论(0) 推荐(0) 编辑
摘要:判断元素 如何判断一个元素是否存在,如何判断 alert 弹窗出来了,如何判断动态的元素等等一系列的判断,在 selenium 的 expected_conditions 模块收集了一系列的场景判断方法,这些方法是逢面试必考的!!!expected_conditions 一般也简称 EC,本篇先介绍 阅读全文
posted @ 2017-12-11 15:05 Silence&QH 阅读(1081) 评论(0) 推荐(0) 编辑
摘要:前言 在脚本中加入太多的 sleep 后会影响脚本的执行速度,虽然 implicitly_wait ()这种方法隐式等待方法一定程度上节省了很多时间。但是一旦页面上某些 js 无法加载出来(其实界面元素经出来了),左上角那个图标一直转圈,这时候会一直等待的。 implicitly_wait():隐式 阅读全文
posted @ 2017-12-08 15:17 Silence&QH 阅读(1614) 评论(0) 推荐(0) 编辑
摘要:有时候元素明明已经找到了,运行也没报错,点击后页面没任何反应。这种问题遇到了,是比较头疼的,因为没任何报错,只是 click 事件失效了。 问题: 1.在练习百度的搜索设置按钮时,点保存设置按钮,alert 弹出没弹出(代码没报错,只是获取 alert 失败)。 点击父元素解决问题 1.遇到这种问题 阅读全文
posted @ 2017-12-05 15:21 Silence&QH 阅读(7661) 评论(1) 推荐(1) 编辑
摘要:日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题。 基本思路:先用js去掉readonly属性,然后直接输入日期文本内容 一、日历控件 1.打开12306的车票查询界面,在出 阅读全文
posted @ 2017-12-05 10:36 Silence&QH 阅读(4590) 评论(1) 推荐(3) 编辑
摘要:有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息。selenium 的 page_source 方法可以获取到页面源码。 一、page_source 1.selenium 的 page_source 方法可以直接返回页面源码2.重新赋值后打印出来 二、 re 阅读全文
posted @ 2017-12-04 15:20 Silence&QH 阅读(510) 评论(0) 推荐(0) 编辑
摘要:通常在做断言之前,都要先获取界面上元素的属性,然后与期望结果对比。本篇介绍几种常见的获取元素属性方法。 1 获取页面 title 1.1.有很多小伙伴都不知道 title 长在哪里,看下图左上角。 1.2.获取 title 方法很简单,直接 driver.title 就能获取到 2 获取元素的文本 阅读全文
posted @ 2017-12-04 15:20 Silence&QH 阅读(1219) 评论(0) 推荐(0) 编辑
摘要:通常情况下,输入框一般有三种 一、简单文本输入框 1.短的input框,如下: 这种文本框处理方法很简单,分两步,首先定位到输入框后;然后在输入内容,如下: driver.find_element_by_id("zenInput2").send_keys(edittile) 2.textarea框, 阅读全文
posted @ 2017-12-04 11:05 Silence&QH 阅读(1366) 评论(1) 推荐(1) 编辑
摘要:有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用 firebug在打开的页面上继续定位页面元素,调试起来不方便 。加载浏览器配置,需要用 FirefoxProfile(profile_directory)这个类来加载,profile_directory 既为浏览器配置文件的路径地址 F 阅读全文
posted @ 2017-12-01 16:30 Silence&QH 阅读(423) 评论(0) 推荐(0) 编辑
摘要:Table定位 在 web 页面中经常会遇到 table 表格,特别是后台操作页面比较常见。本篇详细讲解 table 表格如何定位。 1.1 table特性 1.table 页面查看源码一般有这几个明显的标签:table、tr、th、td2.<table>标示一个表格3.<tr>标示这个表格中间的一 阅读全文
posted @ 2017-12-01 15:50 Silence&QH 阅读(1920) 评论(0) 推荐(0) 编辑
摘要:1、Select元素 1.打开百度-设置-搜索设置界面,如下图所示 2.箭头所指位置,就是 select 选项框,打开页面元素定位,下方红色框框区域,可以看到 select 标签属性: <select id="nr" name="NR">3.选项有三个<option selected="" valu 阅读全文
posted @ 2017-11-30 16:40 Silence&QH 阅读(9376) 评论(2) 推荐(0) 编辑
摘要:本篇总结了 web 页面常用的一些操作元素方法,可以统称为行为事件有些 web 界面的选项菜单需要鼠标悬停在某个元素上才能显示出来(如百度页面的设置按钮)。 1 简单操作 1.点击(鼠标左键)页面按钮:click()2.请空输入框:clear()3.输入字符串:send_keys()4.打开测试部落 阅读全文
posted @ 2017-11-21 16:53 Silence&QH 阅读(2112) 评论(0) 推荐(1) 编辑
摘要:以下实例演示了采用了page Object设计模式的方式登录qq空间: 1、创建基础类page:在初始方法__init__()定义驱动的(driver),基本url(base_url)和超时时间(timeout)等 2、创建LoginPage类:Page类中定义的方法是页面操作的基本方法,后面根据登 阅读全文
posted @ 2017-11-15 17:23 Silence&QH 阅读(1985) 评论(0) 推荐(0) 编辑
摘要:python提供了两个模块来实现多线程thread 和threading ,thread 不支持守护线程,当主线程退出后,所以的子线程不管它们是否在工作,都会被强行退出。在threading 得到了弥补,所以我们应该尽量使用threading 下面看一个用多线程技术执行测试用例,实现操作多个浏览器的 阅读全文
posted @ 2017-09-14 15:44 Silence&QH 阅读(1843) 评论(0) 推荐(0) 编辑
摘要:当自动化测试完成后,我们需要一份漂亮且通俗易懂的测试报告来展示自动化测试成果,仅仅一个简单的log文件是不够的 HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,它生成易于使用的HTML测试报告,下载后,将其复制到Python的安装目录即可, 例如,Window 阅读全文
posted @ 2017-09-08 15:28 Silence&QH 阅读(740) 评论(0) 推荐(0) 编辑
摘要:模块化驱动测试,就是借鉴编程语言中模块化的思想,把重复的操作独立成功公告模块,懂用例执行过程中需要用到这一模块操作时则被调用,这样可以极大的消除重复从而提高测试用例的可维护性 下面具体以126邮箱为例: 首先对每次要都用到的登录登出独立出来,放在公共模块中 public.py 把函数独立到单独的脚本 阅读全文
posted @ 2017-09-05 17:29 Silence&QH 阅读(673) 评论(0) 推荐(0) 编辑
摘要:Webdriver支持在指定的浏览器测试HTML5,另外可以用JavaScript来测试这些功能,这样就可以在任何浏览器上测试HTML5 多数浏览器使用控件来播放视频,但是不同浏览器需要使用不同的插件,HTML5定义了一个新元素video,指定了一个标准的方式来嵌入电影片段 下面以http://vi 阅读全文
posted @ 2017-09-04 11:37 Silence&QH 阅读(5835) 评论(0) 推荐(0) 编辑