【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()

时间: 2024-10-27 04:23:22

【Selenium2+Python】常用操作的相关文章

Selenium2+python自动化-操作浏览器基本方法

前言 从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API.本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开.前进.后退.刷新.设置窗口大小.截屏.退出等操作. 一.打开网站1.第一步:从selenium里面导入webdriver模块:2.打开Firefox浏览器(Ie和Chrome对应下面的):3.打开

python常用操作

python md5加密 import hashlibprint hashlib.md5("whatever your string is").hexdigest()

python基础之列表常用操作及知识点小结

列表(list) List(列表) 是 Python 中使用最频繁的数据类型.列表可以完成大多数集合类的数据结构实现.它支持字符,数字,字符串甚至可以包含列表(所谓嵌套).列表用[ ]标识,是python最通用的复合数据类型. 常用操作 L=[1,2,3,'xyn',5] 代码 含义 输出 L.append(‘a’) 在L列表后追加元素 [1,2,3,’xyn’,5,1,’a’] L.insert(0,’a’) 在L[0]的位置插入’a’ [‘a’,1,2,3,’xyn’,5,1] L.pop(

python MySQLdb 常用操作

我采用的是MySQLdb操作的MYSQL数据库.先来一个简单的例子吧: import MySQLdb try:     conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)     cur=conn.cursor()     cur.execute('select * from user')     cur.close()     conn.close() except MySQL

Python字符串的常用操作学习

1 >>> name = "I love my job!" 2 >>> name.capitalize() #首字母大写 3 'I love my job!' 4 >>> name.count("o") #统计字母个数 5 2 6 >>> name.center(50,"-") #输出50个字符,不够以"-"补全,并且name放在中间;name.ljust

python列表、字典、字符串常用操作

Python 列表.字典.字符串常用操作 1.字符串操作 字符串可以通过下标取值,但由于字符串是不可变变量,不可通过下标来修改值. str = 'lily terry mark' name[0]    #获取第1个字符串值 name[0:7]   #获取第1~7的字符串值 name[:7]   #缺省开始位置,默认从第1个元素开始取值 name[0:]   #缺省结束位置,默认到字符串末尾结束 字符串包含判断操作符:in .not in .is 'lily' in names 'lily' no

Python列表类型及常用操作

Python列表类型 1.用途: 存放多个值,可以根据索引存取值 2.定义方式: 在[ ]内用逗号分割开多个任意类型的值 l=['yven','law','lyf'] #l=list(['yven','law','lyf']) list方法就相当于调用了一个for循环,依次取值放入列表,列表内的元素可以为任意的数据类型 3.常用操作极其内置方法 掌握优先级最高: 1.按照索引取值(正向取,反向取):既能取值也能改值 例如: 执行结果: 2.切片(顾头不顾尾):可以取出列表的部分元素,和实现列表反

Python元组类型、字典类型及常用操作

一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1,6,(5,''),{}) #t=tuple((1,6,(5,''),{})) t1=tuple('hello') 3.常用操作+内置的方法 优先掌握的操作:1.按索引取值(正向取+反向取):只能取 t=(1,6,(5,''),[1,5,3]) t[0]='1' 2.切片(顾头不顾尾,步长) t=(

python数据类型:字典dict常用操作

字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,bool,tuple,list,dict,set),包括后面要学的实例对象等. 在Python3.5版本(包括此版本)之前,字典是无序的. 在Python3.6版本之后,字典会按照初建字典时的顺序排列(即第一次插入数据的顺序排序). 当然,字典也有缺点:他的缺点就是内存消耗巨大. 优点:查询速度快,映射型

Python | 字符串拆分和拼接及常用操作

一.字符串拆分 1 str = "hola ha1 ha2 china ha3 " 2 3 # partition 从左侧找到第一个目标,切割成三组数据的[元组] 4 str1 = str.partition("a") 5 print(str1) # ('hol', 'a', ' ha1 ha2 china ha3 ') 6 7 # rpartition 从右侧找到第一个目标,切割成三组数据的[元组] 8 str2 = str.rpartition("a&