Python+selenium
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
鼠标事件
ActionChains类鼠标操作的常用方法: context_click()右击 double_click()双击 drag_and_drop()拖动 move_to_element()鼠标悬停在一个元素上 click_and_hold()按下鼠标左键在一个元素上
鼠标事件
ActionChains类鼠标操作的常用方法: #引入ActionChains类 from selenium.webdriver.common.action_chains import ActionChains …… #定位到要右击的元素 right = driver.find_element_by_xpath(“xx”) #对定位到的元素执行鼠标右键操作 ActionChains(driver).context_click(right).perform() ……
键盘事件
经常使用到的键盘操作: send_key(Keys.BACK_SPACE)删除键(BackSpace) send_key(Keys.SPACE)空格键(space) send_key(Keys.TAB) 制表键(tab) send_key(Keys.ESCAPE)回退键(esc) send_key(Keys.ENTER)回车键(enter) send_key(Keys.CONTROL,’a’)全选(ctrl+a) send_key(Keys.CONTROL,’c’)复制(Ctrl+c) send_key(Keys.CONTROL,’x’)剪切(Ctrl+x) send_key(Keys.CONTROL,’v’)粘贴(ctrl+v)
具体安装方法参考: http://www.cnblogs.com/fnng/archive/2013/05/29/3106 515.html
开始
声明字符集 #coding=utf-8 导入需要用到的包 import time,unittest,re 使用selenium在脚本开始要加上 from selenium import webdriver #浏览器 from selenium.common.exceptions import NoSuchElementException #异常 from selenium.webdriver.common.keys import Keys # 键入
Python+selenium入门 学习笔记
2016-1-20
目录
工具简介选择 基本使用方法
定位
Selenium是什么
Selenium is a suite of tools to automate web browsers across many platforms.这是selenium官网关于selenium的一段描述。
selenium + python自动化测试环境搭建
Python版本: 选择2.7.2, Why? 目前大部分第三方库和工 具对2.7都有简单的安装包,不需要自己做太多处理,比2.6 内置了一些包,不需要再安装; Python3.x不支持Se2.0
Selenium版本:选择2.0+,Why? 因为从2.0开始,Se已经 和WebDriver集成在一起了,WebDriver提供了非常多的 API和自动化测试处理方法。
cookie处理
… #向 cookie 的 name 和 pwd 添加会话信息。 driver.add_cookie({'name':'aaa', ‘pwd':'bbb'}) #遍历 cookies 中的 name 和 pwd 信息打印 for cookie in driver.get_cookies(): print "%s -> %s" % (cookie['name'], cookie[‘pwd'])
partial link text xpath css selector
find_element_by_class_name() find_element_by_tag_name() find_element_by_link_text()
find_element_by_partial_link_text() find_element_by_xpath() find_element_by_css_selector()
XPath定位
/AAA/DDD/BBB //BBB //DDD/BBB //* //CCC/* /*/*/*/BBB //DDD/BBB[1] //DDD/BBB[last()] //CCC|//BBB //DDD/BBB|//EEE 绝对路径选择BBB元素 选择所有BBB元素 选择DDD路径下的所有Bwk.baidu.comB元素 选择所有元素 选择CCC路径下的所有元素 选择有3级父元素的BBB元素 选择DDD的第一个子元素BBB元素 选择DDD路径下最后一个BBB元素 选择所有CCC和BBB元素 选择是DDD子元素的BBB元素和所 有EEE元素
为什么用Selenium
Selenium使用灵活,简单,写出的测试用例非常简洁,优 美,易于维护; 支持多种语言编写用例 最主要的还是它是开源的了,非常强大的 Selenium 测试直接运行在浏览器中,就像真正的用户在操 作一样。 测试与浏览器的兼容性,测试你的应用程序看是否能够很好 得工作在不同浏览器和操作系统之上。 测试系统功能,创建衰退测试检验软件功能和用户需求。
常用操作方法
webdriver中比较常用的操作元素的方法有下面几个: elem = driver.find_element_by_name(“entered_login”) elem.clear() elem.send_keys(“uname") driver.find_element_by_name("entered_password").sen d_keys("Asd123") driver.find_element_by_id(“login_btn”).submit()
浏览器基本操作
driver = webdriver.Firefox()#打开浏览器 driver.maximize_window() #将浏览器最大化显示 driver.set_window_size(800,600)#调整浏览器大小 #控制浏览器前进、后退 driver.get('http://www.baidu.com')#访问百度首页 driver.get('http://news.baidu.com')#访问百度新闻首页 driver.back() #返回(后退)到百度首页 driver.forward()#前进到新闻页 driver.switch_to_window(driver.window_handles[-1])#定 位到新窗口 driver.close()#关闭浏览器
XPath定位
//@id 选择所有含有id属性的元素
//BBB[@id] 选择带id属性的BBB元素 //BBB[@id=’b1’] 选择id属性为b1的BBB元素 //DDD[BBB^@id=’b1’] 定位 DDD 元素,该元素要求包含 BBB 子元素,且该子元素的id属性为b1 //BBB[@name=’bbb’] 选择name属性为bbb的BBB元素 //DDD[@id=’d1’]/BB 选择 id 属性为 d1 的 DDD 元素的第一个 B[1] BBB子元素 //BBB[@name=’bbb’] 选 择 name 属 性 为 bbb , type 属 性 为 [@type=’button’] button的BBB元素 //BBB[@*] 选择带属性的BBB元素 //BBB[not@*] 选择所有不带属性的BBB元素
键盘事件
经常使用到的键盘操作: #引入Keys类 from selenium.webdriver.common.keys import Keys driver.find_element_by_id(“username”).clear() driver.find_element_by_id(“username”).send_keys(“ username”)
浏览器多窗口处理
在本例中所有用到的新方法: current_window_handle #获得当前窗口句柄 window_handles #返回的所有窗口的句柄到当前会话 switch_to_window() #用于处理多窗口之前切换 now_handle = driver.current_window_handle #获取当前窗 口句柄 driver.switch_to_window(driver.window_handles[-1])#定 位到新窗口 driver.switch_to_window(now_handle) #返回主窗口
Selenium是一个强大的开源的Web功能自动化测试工具系列。目前主要包 括以下5部分: Selenium Core Selenium IDE Selenium RC(remote control) Selenium Grid Selenium webdriver
Selenium 2 = Selenium 1 + WebDriver
常用操作方法
webdriver中比较常用的操作元素的方法有下面几个: clear清除元素内容,如果可以的话 send_keys在元素上模拟按键输入【这里需要注意的是,我 们一般会在脚本开始声明代码的编码格式为utf-8,所以当 我们使用中午字符串操作时,应在字符串前面加小u,进行 转码标识——send_keys(u”中文内容”)】 click单击元素,单击任何可以点击的元素,文字/图片链接 ,按钮,下拉按钮等。 submit提交表单,提交对象是一个表单
设置等待时间
Python的time包提供了休眠方法sleep(),导入time包后就 可以使用sleep()进行脚本的执行过程进行休眠。 #引入time类 import time driver.find_element_by_id(“username”).clear() driver.find_element_by_id(“username”).send_keys(“ username”) time.sleep(2) driver.find_element_by_name(“submit”).click()
常用元素定位方法
webdriver提供了一系列的元素定位方法,常用的有以下几种: 分别对应 Python webdriver中的方法为:
webdriver id name python webdriver find_element_by_id() find_element_by_name()
class name tag name link text
定位frame中对象
webdriver 每次只能在一个页面识别,因此才需要用 switch_to_frame 方法去获取 frame 中嵌入的页面,对那个页 面里的元素进行定位。 ... #先找到 iframe1(id = f1) driver.switch_to_frame("f1") #再找到其下面的 iframe2(id =f2) driver.switch_to_frame("f2") ...
#下面可以通过两种方式删除 cookie # 删除一个特定的 cookie driver.delete_cookie("CookieName") # 删除所有 cookie driver.delete_all_cookies() time.sleep(2) …
XPath定位
<AAA> <BBB/> <CCC/> <DDD> <BBB/> </DDD> <CCC> <DDD id=”d1”> <BBB id=”b1”/> <BBB id=”b2” /> <BBB name=”bbb” type=”submit”/> <BBB name=”bbb” type=”button”/> <EEE/> </DDD> </CCC> </AAA>