WebDriver 常用操作

1 浏览器操作

2 窗口和弹框操作

3 cookies 操作

4 简单对象的定位

5 页面元素操作

6 鼠标事件

7 键盘事件


1 浏览器操作

#属性:
driver.current_url #用于获得当前页面的URL
driver.title #用于获取当前页面的标题
driver.page_source #用于获取页面html源代码
driver.port #用于获取浏览器的端口
driver.capabilities['version'] #打印浏览器version的值 #浏览器:
driver.get(url):#浏览器加载url
driver.back() #浏览器后退
driver.forward() #浏览器前进
driver.refresh() #浏览器刷新(点击刷新按钮)
driver.set_page_load_timeout(5) #设置页面加载时间,如果超时会跑异常
driver.implicitly_wait(秒) #隐式等待,通过一定的时长等待页面上某一元素加载完成。
#若提前定位到元素,则继续执行。等待10s若超过时间未加载出,则抛出NoSuchElementException异常。 #执行js:
driver.execute_script(js) #调用js

2 窗口和弹框操作

#窗口:
driver.current_window_handle #用于获取当前窗口句柄
driver.window_handles #用于获取所有窗口句柄 driver.maximize_window() #将浏览器最大化显示
driver.set_window_size(480, 800) #设置浏览器宽480、高800显示
driver.get_window_size() #获取当前窗口的长和宽
driver.get_window_position() #获取当前窗口坐标
driver.set_window_position(300,200) #设置当前窗口坐标
driver.get_screenshot_as_file(filename) #截取当前窗口
#实例:driver.get_screenshot_as_file('D:/selenium/image/baidu.jpg') driver.close() #关闭当前窗口,或最后打开的窗口
driver.quit() #关闭所有关联窗口,并且安全关闭session #窗口切换:
driver.switch_to_frame(id或name属性值)#切换到新表单(同一窗口)。若无id或属性值,可先通过xpath定位到iframe,再将值传给switch_to_frame()
driver.switch_to.parent_content()#跳出当前一级表单。该方法默认对应于离它最近的switch_to.frame()方法
driver.switch_to.default_content() #跳回最外层的页面
driver.switch_to_window(窗口句柄) #切换到新窗口
driver.switch_to.window(窗口句柄) #切换到新窗口 #弹框切换:
driver.switch_to_alert() #警告框处理。处理JavaScript所生成的alert,confirm,prompt
driver.switch_to.alert() #警告框处理

3 cookies 操作

driver.get_cookies()   #获取当前会话所有cookie信息
driver.get_cookie(cookie_name) #返回字典的key为“cookie_name”的cookie信息。
#实例:driver.get_cookie("NET_SessionId")
driver.add_cookie(cookie_dict) #添加cookie。“cookie_dict”指字典对象,必须有name和value值
driver.delete_cookie(name,optionsString) #删除cookie信息
driver.delete_all_cookies() #删除所有cookie信息

4 简单对象的定位

'''
能通过id和name的,尽量不要用xpath和css
Id定位
唯一属性定位
组合定位
先找到相邻的元素
绝对路径
''' diver.find_element("xpath",".//a//span") #利于封装 driver.find_element_by_id()
driver.find_element_by_name()
driver.find_element_by_class_name()
driver.find_element_by_tag_name()
driver.find_element_by_link_text()
driver.find_element_by_partial_link_text() #模糊查询
driver.find_element_by_xpath()
driver.find_element_by_css_selector() #css选择定位器

5 页面元素操作

# 属性:
element.size #获取元素的尺寸。
element.text #获取元素的文本。
element.tag_name #获取标签名称 element.clear() #用于清除输入框的默认内容
element.send_keys("xx") #用于在一个输入框里输入 xx 内容
element.click() #用于单击一个按钮
element.submit() #提交表单
element.size #返回元素的尺寸
element.text #获取元素文本
element.get_attribute('value')
#返回元素的属性值,可以是id、name、type或元素拥有的其它任意属性
#如果是input的,可以通过获取value值获得当前输入的值 element.is_displayed ()
#返回元素的结果是否可见,返回结果为True或False element.is_enabled() #判断元素是否可用
element.is_selected() #返回单选按钮、复选框元素结果是否被选中(True 或 False)
element.value_of_css_property(height) #获取元素css样式属性

6 鼠标事件

#引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains mouse =driver.find_element_by_xpath("xx") #定位鼠标元素 #对定位到的元素执行鼠标操作
ActionChains(driver).context_click(mouse).perform() #鼠标右键操作
ActionChains(driver).double_click(mouse).perform() #鼠标双击操作
ActionChains(driver).move_to_element(mouse).perform() #鼠标移动到上面的操作
ActionChains(driver).click_and_hold(mouse).perform() #鼠标左键按下的操作
ActionChains(driver).release(mouse).perform() #鼠标释放 #鼠标拖拽
element = driver.find_element_by_name("xxx") #定位元素的原位置
target = driver.find_element_by_name("xxx") #定位元素要移动到的目标位置
ActionChains(driver).drag_and_drop(element, target).perform() #执行元素的移动操作

7 键盘事件

#引入Keys类包
from selenium.webdriver.common.keys import Keys element.send_keys(Keys.BACK_SPACE) #删除键(BackSpace)
element.send_keys(Keys.SPACE) #空格键(Space)
element.send_keys(Keys.TAB) #制表键(Tab)
element.send_keys(Keys.ESCAPE) #回退键(Esc)
element.send_keys(Keys.ENTER) #回车键(Enter)
element.send_keys(Keys.CONTROL,'a') #全选(Ctrl+A)
element.send_keys(Keys.CONTROL,'c') #复制(Ctrl+C)
element.send_keys(Keys.CONTROL,'x') #剪切(Ctrl+X)
element.send_keys(Keys.CONTROL,'v') #粘贴(Ctrl+V)
element.send_keys(Keys.F12) #键盘F12 #输入空格键+“python”
element.send_keys(Keys.SPACE)
element.send_keys("python")

【WebDriver】WebDriver 常用操作的更多相关文章

  1. Python脚本控制的WebDriver 常用操作 <一> 启动浏览器

    由于本人的学习定位是基于Selenium+WebDriver+Python+FireFox+Eclipse+Pydev, 所以我的笔记也只和这方面相关. 我打算先学习基于Python脚本WebDriv ...

  2. Python脚本控制的WebDriver 常用操作 <二> 关闭浏览器

    下面将模拟一个WebDriver关闭浏览器的操作 测试用例场景 在一个自动化测试脚本运行完毕后,我们很可能会采取关闭浏览器的操作,而关闭浏览器的常用操作有如下两种: close quit close  ...

  3. Python脚本控制的WebDriver 常用操作 <十> 层级定位

    下面将使用WebDriver来模拟操作一个层级定位元素的操作 测试用例场景 在实际的项目测试中,经常会有这样的需求:页面上有很多个属性基本相同的元素,现在需要具体定位到其中的一个.由于属性基本相当,所 ...

  4. Python脚本控制的WebDriver 常用操作 <九> 定位一组对象

    下面将使用WebDriver来模拟操作定位一组对象的操作 测试用例场景 从上一节的例子中可以看出,webdriver可以很方便的使用find_element方法来定位某个特定的对象,不过有时候我们却需 ...

  5. Python脚本控制的WebDriver 常用操作 <十五> 处理Navigation Bar

    下面将使用WebDriver来模拟操作:选择一个Navigation bar的选项 测试用例场景 Navigation Bar可以看作是简单的类似于tab的导航栏.一般来说导航栏都是ul+li.先定位 ...

  6. selenium webdriver python 元素操作

    常用操作 click 点击某个元素 driver.find_element_by_id(“su”).click()   clear driver.find_element_by_id(“kw”).cl ...

  7. Python3 Selenium自动化web测试 ==> 第九节 WebDriver高级应用 -- 操作select 和 alert

    学习目的: 掌握页面常规元素的定位方法 场景: 网页正常的select元素下拉框常规方法和select专属方法 正式步骤: step1:常规思路select页面元素定位 处理HTML代码截图 # -* ...

  8. Webdriver API之操作(二)

    一.窗口截图 dirver.get_screenshot_as_file("D:\\report\\image\\xxx.jpg") 二.关闭窗口 dirver.close() # ...

  9. java selenium webdriver处理JS操作窗口滚动条

    未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...

随机推荐

  1. 【转】搭建Java版WebService

    原文地址:http://www.cnblogs.com/jasoncc/archive/2011/12/22/2296052.html Hi,大家好! 今天主要和大家分享,如何搭建一个Web服务,做A ...

  2. SQL-----------------------之ON和WHERE的区别

    SQL中ON和WHERE的区别 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户.在使用left jion时,on和where条件的区别如下:1. on ...

  3. Scala学习笔记(一):入门

    变量定义 Scala有两种变量,val和var.val类似于Java中的final变量,一旦初始化了,val就不能再被赋值.var可以多次赋值.但由于函数式编程特性,Scala更推崇val. var的 ...

  4. extern、static、restrict、volatile 关键字

    extern extern的两个作用: 修饰变量或函数,提示编译器此变量或函数是在其它文件中定义的,但要在此处引用: 进行链接指定,如: extern "C" void fun(i ...

  5. android 中文api

    http://www.embeddedlinux.org.cn/androidapi/

  6. customer.java

    package banking; public class Customer { private String firstName; private String lastName; private ...

  7. HTTP协议(web开发)

    HTTP协议 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数 ...

  8. solus 系统 - 更新软件源

    清华稳定源sudo eopkg ar Tuna https://mirrors.tuna.tsinghua.edu.cn/solus/shannon/eopkg-index.xml 清华不稳定源sud ...

  9. CentOS7 下安装mysql历程

    一.成功他妈的经历 背景(废话不用看):自己对Linux不是很熟悉,说难听点就是门都没有么到!基于这近年大数据之类的热闹话题,自己就想学习一下!开始下的是Minimal ISO这个版本,Vbox5虚拟 ...

  10. 架构师如何借鉴他人经验快速成长? | 2018GIAC上海站日程上线!

    随着网络技术的迅猛发展,越来越多的企业需要紧跟技术发展潮流以应对层出不穷的业务场景变化.如今多“语言”开发百花齐放,选择何种语言才能在合适的场景中发挥最大价值?互联网业务架构经过了长年的发展,已然朝着 ...