一、控制浏览器

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. OpenCV学习(6) 文件和Mat之间的数据交换

          有时候为了便于调试算法,我们需要从文本文件或二进制文件中读取数据,并把数据放到相应的矩阵中去.我们通常可以通过下面的函数实现.   1.从二进制文件中读取数据.      新建一个txt文 ...

  2. go语言基础之包和自定义包与main包

    1.包 所有 Go 语言的程序都会组织成若干组文件,每组文件被称为一个包.这样每个包的代码都可以作为很小的复用单元,被其他项目引用. 一个包的源代码保存在一个或多个以.go为文件后缀名的源文件中,通常 ...

  3. jQuery调用WebService

    1.编写4种WebService方法     [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBindi ...

  4. C#中使用SQLite数据库简介(下)

    [SQLite管理工具简介] 推荐以下2款: Navicat for SQLite:功能非常强大,几乎包含了数据库管理工具的所有必需功能,操作简单,容易上手.唯一的缺点是不能打开由System.Dat ...

  5. netlink error: too many arguments to function 'netlink_kernel_create'

    2.6版本的 netlink_kernel_create(&init_net, NETLINK_TEST, 0, NULL, kernel_receive ,THIS_MODULE);   3 ...

  6. 读TIJ -7 多形性

    <Think in java·第 7 章  多形性> [面向对象的程序设计语言三种最主要的特征:数据抽象.继承和多态] 在这个层面是没有什么"思想"好谈的!当你依照人们 ...

  7. 循环栅栏:CyclicBarrier(司令要求任务) 读书笔记

    可以理解为循环栅栏,栅栏就是一种障碍物.假如我们将计数器设置为10,那么凑齐第一批10个线程后,计数器就会归零,然后接着凑齐下一批10个线程,这就是循环栅栏的含义. 构造器: public Cycli ...

  8. Eclipse与Android源码中ProGuard工具的使用(代码混淆)

    由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的 ...

  9. ssh 安装笔记

    debian 6.0 的一台32位机器,aptitude search openssh-server-x509 没结果(其他机同样源配置是有结果的),于是上内部源下载openssh-server-x5 ...

  10. gdb调试运行程序带参数(调用动态链接库),debug过程记录

    library多线程file1.gdb (运行程序名称) 例如 gdb cbenchmark 2.设置运行参数 set args -c 1 -n 1 -F ./libaliww.so -l 1 3.如 ...