Selenium自动化测试
HeatDeath
Learn by doing!
展开
-
基于《Selenium 2自动化测试实战》的学习笔记(1)—— 软件测试分类
单元测试:单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程。集成测试:集成测试是单元测试的基础上,将通过单元模块组装成系统或子系统,再进行测试,重点是检查模块之间的接口是否正确。系统测试:系统测试是针对整个产品系统进行的测试,验证系统是否满足了需求规格的定义,以及软件系统的正确性和性能等是否满足其规约所指定的要求。验收测试:验收测试是部署软件之前的最后一个测试操作。验原创 2017-05-03 17:06:12 · 564 阅读 · 0 评论 -
unittest 基础之 —— TestCase
深入解读Python的unittest并拓展HTMLTestRunnerunnitest 就是unnitest=TestCase+TestResult ,到其实最终执行的是 TestCase 中的run方法,并把结果给 TestResult(或它的子类)。import unittestclass Mydemo(unittest.TestCase): def setUp(self):原创 2017-05-23 00:22:14 · 2867 阅读 · 0 评论 -
unittest 中用于 skip 跳过 test method, test class,的相关装饰器
可以使用unitest.skip装饰器族跳过test method或者test class,这些装饰器包括: ① @unittest.skip(reason):无条件跳过测试,reason描述为什么跳过测试 ② @unittest.skipif(conditition,reason):condititon为true时跳过测试 ③ @unittest.skipunless(condition,r原创 2017-05-22 23:50:03 · 5536 阅读 · 0 评论 -
使用 webdriver 从标签中获取文本内容的方法
bucket_text = driver.find_element_by_xpath('//p[@class="bucket-text"]').get_attribute('textContent') print(bucket_text)使用driver.find_element_by_xpath('').get_attribute('textContent') 来获取指定节点中的原创 2017-05-19 16:02:08 · 16103 阅读 · 3 评论 -
使用 webdriver报错 ElementNotInteractableException: Message: 的解决办法
睡几秒就好了…原创 2017-05-17 17:38:48 · 18724 阅读 · 7 评论 -
在 unittest 中使用 logging 模块记录测试数据
# -*- coding:utf-8 -*-import sysimport loggingimport unittestimport osreload(sys)sys.path.append(os.path.dirname(os.path.abspath(__file__)) + r'\..') # 返回脚本的路径logging.basicConfig(level=logging.D原创 2017-05-17 15:08:11 · 4632 阅读 · 0 评论 -
报错 MoveTargetOutOfBoundsException 的解决办法
# 将 滚动条 拖动到 xxxx 按钮,上端对齐scroll_add_crowd_button = driver.find_element_by_xpath(xpath_button_add_crowd)driver.execute_script("arguments[0].scrollIntoView();", scroll_add_crowd_button)# 定位 添加条件 按钮,经观需要鼠原创 2017-05-16 18:10:27 · 8867 阅读 · 0 评论 -
使用 Selenium 将滚动条移动到目标元素位置的方法
from selenium.webdriver.common.action_chains import ActionChainsscroll_add_crowd_button = driver.find_element_by_xpath(xpath_button_add_crowd)driver.execute_script("arguments[0].scrollIntoView();", scr原创 2017-05-16 18:13:42 · 10517 阅读 · 2 评论 -
使用 selenium 模拟 鼠标悬浮 在目标元素上的方法
from selenium.webdriver.common.action_chains import ActionChains# 定位 添加条件 按钮,经观需要鼠标悬停xpath_button_add_condition = '//span[contains(text(),"添加条件")]'move_on_to_add_condition = driver.find_element_by_xpa原创 2017-05-16 18:12:09 · 4569 阅读 · 1 评论 -
Selenium 鼠标操作
selenium之 玩转鼠标键盘操作(ActionChains) 更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而s转载 2018-01-07 23:20:08 · 647 阅读 · 0 评论 -
Python Selenium 处理 alert 提示信息的方法
针对alert,selenium提供了相应的类来进行处理。selenium.webdriver.common.alert.Alert(driver)先列出Alert的所有操作:Alert(driver).accept() # 等同于点击“确认”或“OK”Alert(driver).dismiss() # 等同于点击“取消”或“Cancel”Alert(driver).authe转载 2018-01-17 19:04:46 · 10145 阅读 · 0 评论 -
Python Selenium 报错 unexpected alert open 解决办法
unexpected alert open使用这个即可driver.switch_to.alert.accept()1、How to handle the “unexpected alert open”?https://stackoverflow.com/questions/19173195/how-to-handle-the-unexpected-alert-open2、原创 2018-01-17 19:06:53 · 13256 阅读 · 1 评论 -
Python Selenium 之 关闭窗口close与quit
selenium之 关闭窗口close与quit 更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别。1.看源码或API转载 2018-01-17 19:08:02 · 7486 阅读 · 0 评论 -
Python Selenium 报错 ImportError: sys.meta_path is None, Python is likely shutting down 解决办法
Exception ignored in: >Traceback (most recent call last): File "C:\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 173, in __del__ File "C:\Python\Python36\lib\site-原创 2018-01-18 11:34:29 · 8329 阅读 · 1 评论 -
Selenium+Python 自动化测试环境搭建
换了电脑,以前配置的 chromedriver 啥的都不能用了,所以还得再配一遍防止以后再用,遂记录下来chromedriver 的下载地址: https://sites.google.com/a/chromium.org/chromedriver/downloads至于 chromedriver 的放置位置讲道理是应该放在 chrome 文件夹下如下图:并且还得原创 2018-02-04 18:51:27 · 396 阅读 · 0 评论 -
Selenium 不再支持 PhantomJS 的解决办法
震惊!Selenium分手PhantomJS 背景今天本地调试基于Selenium+PhantomJS的动态爬虫程序顺利结束后,着手部署到服务器上,刚买的热乎的京东云,噼里啪啦一顿安装环境,最后跑的时候报了这么个错误:UserWarning: Selenium support for ...转载 2018-05-11 10:45:06 · 8765 阅读 · 2 评论 -
配置 Pycharm 默认 Test runner 的方法
由图中可见,当前使用的是 unittest 测试框架修改方式如下:原创 2017-05-23 13:31:48 · 5936 阅读 · 0 评论 -
unittest 基础之 —— TestSuite
深入解读Python的unittest模块如何创建这些Testcase或者TestSuite?1.自己手动实例化TestCase,这个上面已经有例子,与普通类无异,这中在自动化领域用处不大2.利用C:\Python27\Lib\unittest\loader.py模块的TestLoader,该类提供了多种不同情境find testcase。1.loadTestsFromTestCase利用给出的Te原创 2017-05-23 13:35:22 · 713 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(2)—— 适合自动化测试的项目及自动化测试工具简介
适合自动化测试的项目1、任务测试明确,不会频繁变动 2、每日构建后的测试验证 3、比较频繁的回归测试 4、软件系统界面稳定,变动少 5、需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重复任务 6、软件维护周期长 7、项目进度压力不太大 8、被测软件系统开发比较规范,能够保证系统的可测试性 9、具备大量的自动化测试平台 10、测试人员具备较强的编程能力自动化测试工具简介自原创 2017-05-03 17:11:07 · 1110 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(3)—— selenium 工具介绍
什么是selenium?selenium 自动化测试浏览器,它主要是用于Web 应用程序的自动化测试,但肯定不只局限于此,同时支持所有基于web 的管理任务自动化。selenium 的特点: 开源,免费 多浏览器支持:FireFox、Chrome、IE、Opera 多平台支持:linux 、windows、MAC 多语言支持:java、python、ruby、php、C#、J原创 2017-05-03 17:19:19 · 987 阅读 · 0 评论 -
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH
selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH. 报错的解决办法Selenium using Python - Geckodriver executable needs to be in PATHWindows系统解决办法如下: 1、下载geck原创 2017-05-03 18:35:34 · 4893 阅读 · 1 评论 -
在 python 中使用 Selenium 报错self.capabilities = response['value'] KeyError: 'value'的解决办法
错误提示:self.capabilities = response['value'] KeyError: 'value'解决办法:安装最新版本的 Selenium 包 和最新版本的 firefox 即可原创 2017-05-03 19:04:20 · 2860 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(4)—— 简单对象的定位
webdriver 提供了一系列的元素定位方法,常用的有以下几种 id name class name tag name link text partial link text xpath css selector分别对应python webdriver 中的方法为:find_element_by_id() find_element_by_name()原创 2017-05-03 19:24:05 · 789 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(5)—— XPath 定位
XPath 是一种在XML 文档中定位元素的语言。因为HTML 可以看做XML 的一种实现,所以selenium 用户可是使用这种强大语言在web 应用中定位元素。<html class="w3c"><body><div class="page-wrap"><div id="hd" name="q"><form target="_self" action="http://www.so.com原创 2017-05-03 19:28:39 · 482 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(6)—— CSS 定位
CSS 定位CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML 和XML 文档的表现。CSS 使用选择器来为页面元素绑定属性。这些选择器可以被selenium 用作另外的定位策略。CSS 可以比较灵活选择控件的任意属性,一般情况下定位速度要比XPath 快。CSS 选择器的常见语法:<div class="formdiv"> <form name="fnfn原创 2017-05-03 19:36:46 · 807 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(7)—— 操作测试对象
webdriver 中比较常用的操作元素的方法有下面几个: clear 清除元素的内容,如果可以的话 send_keys 在元素上模拟按键输入 click 单击元素 submit 提交表单登陆实例# -*- coding:utf-8 -*-from selenium import webdriverfrom time import sleepdriver = webdrive原创 2017-05-03 23:27:02 · 611 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(8)—— 鼠标事件
ActionChains 类鼠标操作的常用方法: context_click() 右击 double_click() 双击 drag_and_drop()拖动 move_to_element() 鼠标悬停在一个元素上 click_and_hold() 按下鼠标左键在一个元素上模拟鼠标右键假如一个web 应用的列表文件提供了右击弹出快捷菜单的的操作。可以通过context_cli原创 2017-05-04 08:55:22 · 1183 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(9)—— 键盘事件
#coding=utf-8from selenium import webdriver#引入Keys 类包from selenium.webdriver.common.keys import Keysimport timedriver = webdriver.Firefox()driver.get("http://www.baidu.com")#输入框输入内容driver.find_原创 2017-05-04 09:01:50 · 836 阅读 · 0 评论 -
大菠萝实习日记(1)
入职 报到 吃午饭 搭环境小姐姐来了之后,给我们大致介绍了一下工作的内容与流程,虽然听得一头雾水,但是,好像我的工作就是使用 selenium + 某某浏览器 在 用于测试工作的前端页面 进行模拟用户操作,并时刻截屏。小姐姐说, 在用 PhantomJS 截屏的时候, 与用户正常登陆时的前端页面不同。让我们试图查找一下原因。现在表示测试的步骤是使用 print(), 这种方式太过初级,考虑使用原创 2017-05-12 00:11:34 · 702 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(10)—— 打印信息
通常我们可以通过获得页面的title 、URL 地址,页面上的标识性信息(如,登录成功的“欢迎,xxx”信息)来判断用例执行成功。#coding=utf-8from selenium import webdriverdriver = webdriver.Firefox()driver.get("xxx")#登录driver.find_element_by_id("user_name").cl原创 2017-05-12 23:53:32 · 805 阅读 · 0 评论 -
基于《Selenium 2自动化测试实战》的学习笔记(11)—— 设置等待时间
sleep():设置固定休眠时间。python 的 time 包提供了休眠方法 sleep() ,导入time 包后就可以使用 sleep() 进行脚本的执行过程进行休眠。implicitly_wait():是 webdirver 提供的一个超时等待。隐的等待一个元素被发现,或一个命令完成。如果超出了设置时间的则抛出异常。WebDriverWait():同样也是webdirver 提供的方法。在设置原创 2017-05-13 00:56:03 · 1615 阅读 · 0 评论 -
unittest 中用于跳过 test method, test class,的相关装饰器
可以使用unitest.skip装饰器族跳过test method或者test class,这些装饰器包括: ① @unittest.skip(reason):无条件跳过测试,reason描述为什么跳过测试 ② @unittest.skipif(conditition,reason):condititon为true时跳过测试 ③ @unittest.skipunless(condition,原创 2017-07-21 23:59:22 · 997 阅读 · 0 评论 -
unittest 基础之 —— TestResult
testresult就是存储测试结果的,不过通过何种方式调用run函数,最终到Testcase中的run方法时必须传一个result(如果为None则自己实例化一个TestResult对象)。这个result就是TestResult对象或者是其子类的对象,我们每次执行的结果都会调用其addFailure,addSuccess,addSkip….等方法将执行结果保存到TestResult原创 2017-07-21 23:59:05 · 3952 阅读 · 1 评论 -
Python Selenium 水平竖直移动鼠标的方法
b_label_location = driver.find_element_by_xpath(XPATH_MAP_DICT['xpath_meeting_time_i_b']) mouse_action = ActionChains(driver) mouse_action.move_to_element_with_offset(b_label_location, 15,...原创 2018-06-02 15:17:11 · 3899 阅读 · 0 评论