一、控制浏览器

1.1 控制浏览器窗口大小

# 获取当前浏览器的大小  driver.get_window_size()

# 通过像素设置浏览器的大小  driver.set_window_size('width','height')

# 获取当前窗口针对于Windows的位置的坐标x,y  driver.get_window_position()

# 设置当前窗口针对Windows的位置,x,y  driver.set_window_position(20,20)

# 最大化当前窗口,不需要传参  driver.maximize_window()

# 返回当前操作的浏览器句柄  driver.current_window_handle

# 返回所有打开server的浏览器句柄  driver.window_handles
1.2  控制浏览器后退、前进
# 前进  driver.forward()
# 后退  driver.back()

1.3  模拟浏览器刷新
# 刷新  driver.refresh()
二、简单元素操作
2.1 常用方法
#清除文本输入框中的内容  element.clear() 
#模拟键盘向输入框里输入内容  element.send_keys(*value)
#用来单击一个元素  element.click()   前提是它是可以被单击的对象,它与send_keys(*value) 方法是Web页面操作中最常用到的两个方法
click() 方法不仅可用于单击一个按钮,它还能单击任何可以单击的文字、图片链接、复选框、单选框、下拉框
2.2  WebElement 接口常用方法
通常有趣的和需要与页面交互的方法都由WebElement 接口提供
#模仿回车按钮 提交数据  element.submit() 
# 根据标签属性名称,获取属性value  element.get_attribute('style')
# 通过属性名称获取属性  element.get_property('id')
# 返回元素是否可见 True or False  element.is_displayed()
# 返回元素是否被选中 True or False  element.is_selected()
# 返回标签元素的名字  element.tag_name

# 获取当前标签的宽和高  element.size
# 获取元素的文本内容  element.text
# 获取当前元素的坐标  element.location

# 截取图片  element.screenshot()
2.3  其他
执行JavaScript语句  driver.execute_script('JavaScript Commond')
例如 通过js来操作滚动条 driver.execute_script('window.scrollTo(0,0);')
三、 鼠标操作
在Webdriver 中,鼠标操作的方法封装在ActionChains 类中
引入方式: from selenium.webdriver.common.action_chains import ActionChains
3.1 鼠标右击操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
# 导入提供鼠标操作的ActionChains
driver = webdriver.Chrome()
driver.get('http://ui.imdsx.cn/uitester/')
driver.maximize_window() #最大化当前窗口
driver.execute_script('window.scrollTo(0,0);')
#执行JavaScript语句,通过js 来操作滚动条
right_click = driver.find_element_by_id('id1')
ActionChains(driver).context_click(right_click).perform() ActionChains(driver)
调用ActionChains() 类,将浏览器驱动driver作为参数传入
context_click(right_click)
context_click( )方法用于模拟鼠标右键操作,在调用时需要指定元素定位
perform()
执行所有ActionChains 中存储的行为,可以理解成是对整个操作的提交动作
3.2 鼠标悬停 move_to_element()
move_to_element() 方法可以模拟鼠标悬停的动作,其用法与context_click( )相同
dive = driver.find_element_by_css_selector('#a')
ActionChains(driver).move_to_element(dive).perform()
3.3 鼠标双击操作 double_click() 3.4 鼠标拖放操作 drag_and_drop(source,target)
source 鼠标拖动的源元素
target 鼠标释放的目标元素
s = driver.find_element_by_css_selector('#dragger')
t = driver.find_element_by_css_selector('#i1')
ActionChains(driver).drag_and_drop(s,t).perform()
 
引用方法 :from selenium.webdriver.common.keys import Keys
# key_down 模拟键盘摁下某个按键 key_up 松开某个按键,与sendkey连用完成一些操作,每次down必须up一次否则将出现异常
ActionChains(driver).key_down(Keys.CONTROL,dom).send_keys('a').send_keys('c').
key_up(Keys.CONTROL).key_down(Keys.CONTROL,dom1).send_keys('v').key_up(Keys.CONTROL).perform()

Selenium - Webdriver API /ActionChains API的更多相关文章

  1. [selenium webdriver Java]常用api

    1. 获取元素文本 WebElement类的getText()方法返回元素的innerText属性.所以元素里如果有子节点一样也会被返回出来.如下所示 public class GetText { @ ...

  2. [小北De编程手记] : Lesson 04 - Selenium For C# 之 API 上

    这一部分,我准备向大家介绍Selenium WebDriver的常用API,学习这部分内容需要大家最好有一些简单的HTML相关知识,本文主要涉及到以下内容: Selenium API:元素检查 Sel ...

  3. [小北De编程手记] : Lesson 05 - Selenium For C# 之 API 下

    上一篇,我们介绍了一些Selenium WebDriver相关的API,下面我们就接着上一篇继续介绍Selenium常用的API,这一篇的内容主要涉及到以下话题: Selenium API:复杂事件处 ...

  4. selenium - webdriver - ActionChains类(鼠标操作)

    ActionChains 类提供了鼠标操作的常用方法: perform(): 执行所有 ActionChains 中存储的行为: context_click(): 右击: double_click() ...

  5. selenium webdriver python 元素操作

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

  6. Selenium WebDriver-通过ActionChains实现页面元素拖拽

    #encoding=utf-8 import unittest import time import chardet from selenium import webdriver class Visi ...

  7. python+selenium自动测试之WebDriver的常用API(基础篇一)

    基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里 一.对浏览器操作 driver = webdriver.Chrome() # 初始化chrome driv ...

  8. Selenium WebDriver Api 知识梳理

    之前一直没有系统的梳理WebDriver Api的相关知识,今天借此机会整理一下. 1.页面元素定位 1.1.8种常用定位方法 # id定位 driver.find_element_by_id() # ...

  9. python+selenium自动测试之WebDriver的常用API(基础篇二)

    本篇介绍一下python+selenium复杂操作的处理,基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里 一.常见特殊情况处理如iframe/弹窗处理 有 ...

随机推荐

  1. OpenMP 线程互斥锁

    OpenMP是跨平台的多核多线程编程的一套指导性的编译处理方案(Compiler Directive),指导编译器将代码编译为多线程程序. 多线程编程中肯定会涉及到线程之间的资源共享问题,就可以使用互 ...

  2. 小课堂week18 编程范式巡礼第三季 谈谈依赖反转

    编程范式巡礼第三季--谈谈依赖反转 今天会进入深一点的主题,谈一个软件开发的"道":依赖反转.根据我的观察,这也是架构师与程序员的分水岭之一. 什么是依赖反转 引出问题 让我们从U ...

  3. 检测任意日期字符串是否属于当天的java实现方案

    有时候我们会遇到很多形式的日期判断,甚至是并不常见的日期形式,比如20161212之类的日期,下面就此来进行代码是否处于当天的日期校验的代码实现来做一个整理. public static boolea ...

  4. 当Intellij IDEA 遇到 Mac

    当Intellij IDEA 遇到 Mac alt+insert变为control+N

  5. 转:mac下安装homebrew

    见: http://brew.sh 在命令行打开:

  6. 嵌入式 如何定位死循环或高CPU使用率(linux)

    如何定位死循环或高CPU使用率(linux)  确定是CPU过高 使用top观察是否存在CPU使用率过高现象 找出线程 对CPU使用率过高的进程的所有线程进行排序 ps H -e -o pid,tid ...

  7. 算法笔记_141:无向图的欧拉回路判断问题(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 Problem Description 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回 ...

  8. 理解邮件传输协议(SMTP、POP3、IMAP、MIME)

    http://blog.csdn.net/xyang81/article/details/7672745 电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就必须遵循一定的规则 ...

  9. 〖Android〗CM10.2编译错误解决

    错误1: hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp: In function 'int android::hd ...

  10. js经常使用功能代码

    js经常使用功能代码(持续更新): 1---折叠与展开 <input id="btnDisplay" type="button" class=" ...