一、控制浏览器

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. SpEL笔记

    SpEL使用示例 <bean id="chineseA" class="com.xxx.bean.Chinese" scope="prototy ...

  2. css整站规划

    准备1 css reset /** * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/) * http:/ ...

  3. Spring定时器XML配置

    spring-task.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...

  4. .NET-MVC站点发布注意事项

    在进行MVC站点发布的过程中需要注意bin文件,使用vs2013自带的发布功能容易漏掉一些dll文件,所以在发布之后需要将程序的bin目录下的文件拷贝到发布好的iis站点下面

  5. [AngularJS] Angular 1.3 ng-model-options - getterSetter

    getterSetter:  boolean value which determines whether or not to treat functions bound to ngModel as ...

  6. C++ 11 - STL - 函数对象(Function Object) (下)

    1. 预定义函数对象 C++标准库内含许多预定义的函数对象,也就是内置的函数对象. 你可以充分利用他们,不必自己费心去写一些自己的函数对象. 要使用他们,你只要包含如下头文件 #include < ...

  7. [置顶] ArcGIS Runtime SDKs 10.2 for iOS & Android& OS X发布

    我们高兴的宣布:ArcGISRuntime SDKs 10.2 for iOS & Android & OS X正式发布!在10.2版本中,你可以在iOS.Android和Mac设备上 ...

  8. 解决Android 5.1系统以上通知状态栏小图标仅仅显示白色问题

    看上图,想必大家都有遇到过吧.近期俺也遇到了,找到了解决方法,如今分享下也做个记录哈. 问题发生的规则是Android5.1或者以上的手机系统使用了非常多的颜色的通知图标,就会出现,怎么解决呢,非常e ...

  9. iOS中使用iCloud一些须要注意的地方(Xcode7.2)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 在自己的App中怎样使用iCloud有非常多文章能够查阅,这里 ...

  10. 【jQuery+html】JS如何在html页面获取PHP输出的变量

    如题:JS如何获取php输出到模板HTML的变量呢? 废话不多说,自己看. aa.html <!-- 前提在HTML文件中--> <script type="text/ja ...