Selenium快速入门之2:ActionChains所有行为动作、常用JS操作

一、ActionChains所有行为行为操作

selenium中的ActionChains使用链式模型,即可以实现简单的交互行为,例如鼠标移动,鼠标点击事件,键盘输入,以及内容菜单交互。同时也可以完成复杂的类似于鼠标悬停和拖拽等动作。
当在ActionChains对象上调用行为方法时,这些行为会存储在ActionChains对象的一个队列里。调用perform()时,这些动作就以他们队列的顺序来触发。

例如:ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

ActionChains共有17个方法,全部如下:

键盘操作send_keys(*keys_to_send)向当前的焦点元素发送键
send_keys_to_element(element,*keys_to_send)向指定的元素发送键
key_down(value,element=None)只按下键盘,不释放
key_up(value,element=None)释放键
鼠标操作click(on_element=None)鼠标左键点击某元素
click_and_hold(on_element=None)鼠标左键点击一个元素并且保持
double_click(on_element=None)鼠标左键双击
context_click(on_element=None)点击鼠标右键, 在调用时需要指定元素定位
drag_and_drop(source, target)

鼠标左键点击source元素,然后移动到target元素释放鼠标按键

drag_and_drop_by_offset(source, xoffset,yoffset)

拖拽目标元素到指定的偏移点释放

move_by_offset(xoffset,yoffset)移动鼠标的位置
move_to_element(to_element)把鼠标移到一个元素的中间

move_to_element_with_offset(to_element, xoffset, yoffset)

把鼠标移到一个元素的相对位置
release(on_element=None)释放一个元素上的鼠标按键
其他reset_actions()

清除存储的行为

pause(seconds)暂停所有动作
perform()执行所有 ActionChains 中存储的行为,可以理解成是对整个操作的提交动作

二、常用JS操作

selenium可以使用executeScript方法执行javacript操作,常见操作有:

1、操作垂直滚动条

String scroll = "document.documentElement.scrollTop=" + "y"; 
JavascriptExecutor js=(JavascriptExecutor) driver; 
js.executeScript(scroll);

2、操作水平滚动条

String scroll = "document.documentElement.scrollLeft=" + "x";
JavascriptExecutor js=(JavascriptExecutor) driver;
js.executeScript(scroll);

3、同时操作2个坐标,水平移动到100像素,向下移动到500像素

((JavascriptExecutor)driver).executeScript("window.scrollTo(x,y)");

4、采用相对移动的方式

((JavascriptExecutor)driver).executeScript("window.scrollBy(x,y)");

5、如果操作的是div的scroll同样可以实现

String scroll = "document.getElementById("location").scrollLeft=x";
JavascriptExecutor js=(JavascriptExecutor)driver;
js.executeScript(scroll);

6、操作富文本

String text = "text"; //输入的内容
String js = "var sum=document.getElementById('id'); sum.value='" + text + "';";
((JavascriptExecutor)driver).executeScript(js);

7、操作Html5视频

JavascriptExecutor js=(JavascriptExecutor) driver;
//获取视频url
js.executeScript("return arguments[0].currentSrc;",video);
//播放视频
js.executeScript("return arguments[0].play()", video);
//暂停视频
js.executeScript("arguments[0].pause()", video);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值