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. Jquery 上传插件 FineUploader 在 webform 和 mvc 中的使用;

      多文件上传组件FineUploader使用心得 FineUploader 结合 一般处理程序 [上传示例] 参考:http://www.cnblogs.com/dudu/archive/2012/ ...

  2. JAVA基础知识点总结(全集)

    1.JAVA简介 1.1java体系结构:j2se,javaweb,j2ee 1.2java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定) 1.3 JDK与JRE,JDK:java开发环境 ...

  3. Hibernate -- Dao层 -- CURD -- 随记

    根据Where 参数 查询记录总数 .拼接SQL语句 .获取Session(hibernateTemplate.getSessionFactory().getCurrentSession()),调用C ...

  4. SyntheticEvent

    在react 的事件中使用SyntheticEvent 就会出现下面的报错 <input onChange={async e => { await foo() ... }} /> 那 ...

  5. POJ 1958 Strange Towers of Hanoi

    Strange Towers of Hanoi Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3784 Accepted: 23 ...

  6. Spring学习笔记--代理

    静态代理 1.静态代理的角色分析(UML画图推荐使用StarUML软件) 抽象角色---一般使用接口或者抽象类来实现. 真实角色---被代理的角色. 代理角色---代理真实角色—代理真是角色后一般会做 ...

  7. 6.29一个_rcv 面试题

    #coding:utf-8 #2018-6-29 16:30:34 #类调用属性,属性没有,用__getatrr__魔法方法! #目的打印出 think different itcast class ...

  8. Sqlite数据库管理(SQLite Developer) v4.0.0.528 中文版+破解方法(申明:来源于网络)

    Sqlite数据库管理(SQLite Developer) v4.0.0.528 中文破解版 SharpPlus Sqlite Developer 特性: -强大的SQL编辑器 *Sqlite Sql ...

  9. day4 四、流程控制之if判断、while循环、for循环

    一.if判断 1.语法一: if 条件: 条件成立时执行的子代码块 代码1 代码2 代码3 示例: sex='female' age= is_beautiful=True and age < a ...

  10. web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例

    Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...