【Selenium2+Python】常用操作
Webdriver中比较常用的操作元素的方法:
clear() 清除输入框的默认内容
send_keys("xxx") 在一个输入框里输入xx内容
——如果输入中文,则需要在脚本开头声明编码为utf-8,然后在中文字符前面加u(如:send_keys(u"中文内容"))
click() 点击一个按钮
submit() 提交表单
WebElement接口常用方法:
size 返回元素的尺寸
——如:size = driver.find_element_by_id("id").size
text 获取元素的文本
——如:text = driver.find_element_by_id("id").text
get_attribute(name) 获得属性值
——如:attribute = driver.find_element_by_id("id").get_attribute('type')
is_displayed() 设置该元素是否用户可见
——如:isshow = driver.find_element_by_id("id").is_displayed()
ActionChains类鼠标操作的常用方法:
引入ActionChains类:from selenium.webdriver.common.action_chains import ActionChains
context_click() 右击
——如:RightClick = driver.find_element_by_id("id")
ActionChains(driver).context_click(RightClick).perform()
double_click() 双击
——如:DoubleClick = driver.find_element_by_name("name")
ActionChains(driver).double_click(DoubleClick).perform()
drag_and_drop(source, target) 鼠标拖放
——source:鼠标按下的源元素;target:鼠标释放的目标元素
——如:element = driver.find_element_by_name("name")
target = driver.find_element_by_name("name")
ActionChains(driver).drag_and_drop(element, target).perform()
move_to_element() 鼠标悬停在一个元素上
——如:above = driver.find_element_by_xpath("xpath路径")
ActionChains(driver).move_to_element(above).perform()
click_and_hold() 按下鼠标左键在一个元素上
——如:left = driver.find_element_by_name("name")
ActionChains(driver).click_and_hold(left).perform()
键盘事件:
引入Keys类包:from selenium.webdriver.common.keys import Keys
send_keys() 输入框输入内容
——如:driver.find_element_by_id("id").send_keys("XXX")
send_keys(Keys.BACK_SPACE) 向左删除一个字符 ——如:driver.find_element_by_id("id").send_keys("XXX")
send_keys(Keys.SPACE) 输入空格
——如:driver.find_element_by_id("id").send_keys(Keys.SPACE)
send_keys(Keys.CONTROL,'a') ctrl+a 全选输入框的内容
——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,'a')
send_keys(Keys.CONTROL,'x') ctrl+x 剪切输入框的内容
——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,'x')
send_keys(Keys.CONTROL,'v') ctrl+v 粘贴到输入框
——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,'v')
send_keys(Keys.ENTER) 回车代替点击
——如:driver.find_element_by_id("id").send_keys(Keys.ENTER)
send_keys(Keys.TAB) 制表键(Tab)
——如:driver.find_element_by_id("id").send_keys(Keys.TAB)
send_keys(Keys.ESCAPE) 回退键(Esc)
——如:driver.find_element_by_id("id").send_keys(Keys.ESCAPE)
send_keys(Keys.CONTROL,'c') 复制
——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,'c')
打印信息
#获得title并打印
title = driver.title
print title
#拿当前title名称进行预期比较
if title == u"百度一下,你就知道":
print "title yes!"
else:
print "title no!"
#获得当前URL并打印
url = driver.current_url
print url
等待时间
#导入 WebDriverWait 包
from selenium.webdriver.support.ui import WebDriverWait
#导入 time 包
import time
sleep() 设置固定等待时间
——如:time.sleep(5) #等待5秒
implicitly_wait() 等待一个元素被发现,或一个命令完成,超出了设置时间则抛出异常
——如:driver.implicitly_wait(30)
driver.find_element_by_id("id").click()
WebDriverWait() 在设置时间内,默认每隔一段时间检测检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
——driver:WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)
——timeout:最长超时时间,默认以秒为单位
——poll_frequency:休眠时间的间隔(步长)时间,默认为 0.5 秒
——ignored_exceptions:超时后的异常信息,默认情况下抛 NoSuchElementException 异常
——如1:element = WebDriverWait(driver, 10).until(lambda x : x.find_element_by_id("id"))
element.send_keys("selenium")
——如2:element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id(“Id”))
is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).until_not(lambda x: x.find_element_by_id(“someId”).is_displayed())
WebDriverWai()一般由 unit()或 until_not()方法配合使用:
——until(method, message=’’)
调用该方法提供的驱动程序作为一个参数,直到返回值不为 False。
——until_not(method, message=’’)
调用该方法提供的驱动程序作为一个参数,直到返回值为 False。
定位一组对象
#选择当前页面上所有tag name为input的元素
inputs = driver.find_elements_by_tag_name('input')
#从中过滤出type为checkbox的元素,并勾选上
for input in inputs:
if input.get_attribute('type') == 'checkbox':
input.click()
#使用CSS定位选择所有type为checkbox的元素,并勾选上
checkboxes = driver.find_elements_by_css_selector('input[type=checkbox]')
for checkbox in checkboxes:
checkbox.click()
#把最后一个checkbox的勾去掉 pop()为空则是最后一个
driver.find_elements_by_css_selector('input[type=checkbox]').pop().click()
【Selenium2+Python】常用操作的更多相关文章
- Selenium2+python自动化-操作浏览器基本方法
前言 从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的A ...
- 第二部分:python 常用操作与函数
2.1,交换两数据>> a,b = b,a 2.2,去掉list中的重复元素>> list1 = [1,2,3,2,3,2,5,6]>> list1 = list( ...
- python常用操作
1.进入python命令行: #python >>>... 退出python命令行 >>>exit() #... 2.运行1.py 直接运行1.py: #pytho ...
- python常用操作和内置函数
一.常用数据处理方法. 1.索引:按照号码将对应位置的数据取出使用 2.list将任意类型数据用逗号分割存在列表中 3.range:产生一堆数字(顾头不顾尾) 4.切片:可以从复制数据的一部分,不影响 ...
- Selenium2+python 常用函数汇总
1. driver = webdriver.Chrome() --新建实例 2.driver.find_element_by_id("username") ---通过标签属性id ...
- Python 基礎 - 字符串常用操作
字符串常用操作 今天就介紹一下常用的字符串操作,都是以 Python3撰寫的 首字母變大寫 #!/usr/bin/env python3 # -*- coding:utf-8 -*- name = & ...
- Python脚本控制的WebDriver 常用操作 <二> 关闭浏览器
下面将模拟一个WebDriver关闭浏览器的操作 测试用例场景 在一个自动化测试脚本运行完毕后,我们很可能会采取关闭浏览器的操作,而关闭浏览器的常用操作有如下两种: close quit close ...
- Python脚本控制的WebDriver 常用操作 <一> 启动浏览器
由于本人的学习定位是基于Selenium+WebDriver+Python+FireFox+Eclipse+Pydev, 所以我的笔记也只和这方面相关. 我打算先学习基于Python脚本WebDriv ...
- python基础之列表常用操作及知识点小结
列表(list) List(列表) 是 Python 中使用最频繁的数据类型.列表可以完成大多数集合类的数据结构实现.它支持字符,数字,字符串甚至可以包含列表(所谓嵌套).列表用[ ]标识,是pyth ...
- Python【第二篇】运算符及优先级、数据类型及常用操作、深浅拷贝
一.运算符及优先级 Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 1.算数运算符 运算符 描述 实例,a=20,b=10 + 加 a+b输出结果30 - 减 a-b输出结果 ...
随机推荐
- App.xaml
<Application x:Class="HelloWorld.App" xmlns="http://schemas.microsoft.com/winfx/20 ...
- Python Locust性能测试框架实践
[本文出自天外归云的博客园] Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装pyth ...
- easyui editor combobox multiple
$.extend($.fn.datagrid.defaults.editors,{ combobox: { init: function(container, options){ var combo ...
- selenium处理Ajax浮动框方法
package com.allin.pc;import java.util.List;import org.openqa.selenium.WebElement;import org.openqa.s ...
- 我的android学习经历39
关于像第一次进qq一样的那个渐变企鹅图的制作 渐变动画 package com.moonweather.app.activity; import com.moonweather.app.R; impo ...
- python 列表常用操作
例子: list1 = [1, 2, 3, 4, 5, 6, [6, 7, 8,9], 'hi', 'hello', 6] list2 = [7, 8, 1, 2] list3 = ['good', ...
- Compounding绑定属性
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- springMVC简单示例
1.新建web工程 2.引入springframework架包 3.配置文件 web.xml <?xml version="1.0" encoding="UTF-8 ...
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
- linux 之SCP
一.从本地到远程复制 1.复制文件 * 命令格式: 1.scp -P remote_port local_file remote_username@remote_ip:remote_folder 或者 ...