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 常用函数汇总:

1. driver = webdriver.Chrome() --新建实例

2.driver.find_element_by_id("username") ---通过标签属性id查找元素

3.driver.find_element_by_name("inputpwname")---通过标签属性name查找元素

4.driver.find_element_by_xpath("//div[@id='menucontainer']/div/div/ul/li[4]/a") ---通过标签xpath路径查找元素

5.driver.find_element_by_tag_name("input") --通过标签名tagname查找元素
注意:通过tag_name查找时使用find_element_by_tag_name查找到的是第一个标签的tag_name

6.driver.find_element_by_link_text('登录') ---通过标签中的元素文本链接查找元素

7.driver.find_element_by_class_name("bg_link") ---通过标签的class属性查找元素

8.driver.find_element_by_css_selector("input.btn")
注意:find_elements_by_id()查询到的是一个集合,如果id名字重复的时候可以采取find_elements_by_id(),其他的查询方式同理;

9.driver.get("http//:www.baidu.com") ---浏览器加载url

10.driver.forward --网页向前返回

11.driver.get_cookies() ---返回当前会话中的cookies

12.driver.get_cookie("hello")---根据cookie name查找

13.driver.get_screenshot_as_file("D:\\Application\myfiles\shot1.bmp") ---截取当前页面

14.driver.get_window_position() --获取当前窗口的坐标

15.driver.get_window_size() ---获取当前窗口的长和宽

16.driver.current_url ---获取当前页面的url

17.driver.find_element_by_xpath("//*[@id='tablechart']/tbody/tr[14]/td[9]").location---获取元素坐标

18.driver.find_element_by_id("form1").submit() ----先找到要获取的元素然后调用submit

19.driver.find_element_by_id("forml").get_attribute("forml") ---获取元素的属性值

20.driver.find_element_by_id("form1").is_selected() ----判断元素是否被选中

21.driver.find_element_by_id("iptPassword").size ---返回元素的大小

22.driver.find_element_by_id("iptPassword").is_displayed() --判断元素是否显示

23.driver.find_element_by_id("iptPassword").is_enabled() ----判断元素是否被使用

24.driver.find_element_by_id("iptUsername").text --获取元素的文本值

25.driver.find_element_by_id("iptUsername").send_keys('admin') --元素赋值
driver.find_element_by_id("iptUsername").send_keys(u'管理员') --如果是中文字符,要加转义字符u

26.driver.find_element_by_id("iptUsername").tag_name ---返回元素的tagname

27.driver.delete_all_cookies() ---删除浏览器所有的cookies

28.driver.delete_cookie("my_cookie_name")----删除指定cookies

29.driver.close() ---关闭浏览器

30.driver.quit()----关闭浏览器并且退出驱动程序

31.driver.implicitly_wait(30) ---设置等待超时

32.driver.maximize_window() ---浏览器窗口最大化

driver.set_window_size(1024,768) 修改浏览器窗口大小

33.driver.name ---查看浏览器的名字

selenium常用操作方法的更多相关文章

  1. 基于python的selenium常用操作方法(2)

    9 多表单切换 在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位.这 ...

  2. 基于python的selenium常用操作方法(1)

    1 selenium定位方法    Selenium提供了8种定位方式. ·         id ·         name ·         class name ·         tag ...

  3. js数组常用操作方法小结(增加,删除,合并,分割等)

    本文实例总结了js数组常用操作方法.分享给大家供大家参考,具体如下: var arr = [1, 2, 3, 4, 5]; //删除并返回数组中第一个元素 var theFirst = arr.shi ...

  4. Set对象常用操作方法和遍历

    Set<String> set = new HashSet<String>(); /** * set的常用操作方法有: * add()向集合添加元素 clear()清空集合元素 ...

  5. Python文件常用操作方法

    Python文件常用操作方法 一.对File对象常用操作方法: file= open(file, mode='r', buffering=-1, encoding=None, errors=None, ...

  6. python 字符串常用操作方法

    python 字符串常用操作方法 python 字符串操作常用操作,如字符串的替换.删除.截取.赋值.连接.比较.查找.分割等 1.去除空格 str.strip():删除字符串两边的指定字符,括号的写 ...

  7. Selenium Web 自动化 - Selenium常用API

    Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作  1.1 用webdriver打开一个浏览器  1.2 最大化浏览器&关闭浏览器 ...

  8. C++中vector容器的常用操作方法实例总结

    C++中vector容器的常用操作方法实例总结 参考 1. C++中vector容器的常用操作方法实例总结: 完

  9. selenium常用命令--操作页面元素及获取元素内容整理

    selenium常用命令之操作页面元素及获取元素内容的事件整理 例子:  /**id <input type="text" id="phone" name ...

随机推荐

  1. h5中video的一些坑

    最近我们的项目做了有关短视频的功能,当然视频的合成还是在客户端来完成,涉及到前端页面的部分就是要有一个H5的落地页,这个页面上要有对视频进行播放.起初我觉得这事儿还是挺简单的,不就是在页面上放一个&l ...

  2. JSP Cookie 处理

    Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持. 通常有三个步骤来识别回头客: 服务器脚本发送一系列cook ...

  3. java基础知识(初学)

    (小记) 文本文档方式可以下载notepad 在设置-新建-修改默认语言为java 编码为ANSI! java关键字特点:1.完全小写字母.如:public. java标识符:方法的名称,类的名称,变 ...

  4. 小K的农场(差分约束,spfa)

    题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了c个单位的作 ...

  5. MAMP:MySQL wasn't able to start

    MAMP 我点击start server的时候 发现mysql服务器打不开 http://images.cnblogs.com/cnblogs_com/lwwen/1231721/o_11111111 ...

  6. MySQL/MariaDB学习笔记——mysql.user表中存在多个root用户问题理解

    mysql.user表中存在多个root用户问题 问题描述:使用 SELECT host,user FROM mysql.user 发现mysql.user表中存在三个root用户,如下 持着对中几个 ...

  7. hql返回数值

    public int getCountUser() throws ParseException { Session hSession = sessionFactory.getCurrentSessio ...

  8. 微信小程序车牌号码模拟键盘输入

    微信小程序车牌号码模拟键盘输入练习, 未经允许,禁止转载,抄袭,如需借鉴参考等,请附上该文章连接. 相关资料参考:https://blog.csdn.net/littlerboss/article/d ...

  9. QOS-policy配置

    QOS-QOS-policy配置 2018年7月7日 20:29 配置: 先匹配acl: [RT2]acl number 3000 [RT2-acl-adv-3000]description QOS ...

  10. java语言描述 猴子吃桃问题(递归和循环写法)

    //题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个//第二天早上又将剩下的桃子吃掉一半,又多吃了一个//以后每天早上都吃了前一天剩下 的一半零一个.到第10天早上想再 ...