Selenium - Webdriver API /ActionChains API
Posted 安柠筱洁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium - Webdriver API /ActionChains API相关的知识,希望对你有一定的参考价值。
一、控制浏览器
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的主要内容,如果未能解决你的问题,请参考以下文章
python+selenium自动测试之WebDriver的常用API(基础篇一)
selenium webdriver API是像JAVA API一样的吗?
java+selenium3-常用的WebDriver API