首页 > 编程知识 正文

selenium详解,scrolltop属性

时间:2023-05-04 19:05:36 阅读:126685 作者:357

ActionChains和TouchAction可用于模拟单击、双击和幻灯片等事件。 ActionChains用于执行PC端鼠标移动、按键、拖动等事件。 TouchActions的使用方法与ActionChains类似,可用于模拟PC和移动终端的点击、滑动、拖动等手势操作。

ActionChains和TouchAction将操作排队,并执行perform ()方法以按队列顺序执行操作。

目录ActionChains示例1 :单击、右键单击、双击操作示例2 :将鼠标移动到某个元素示例3 :在页面上单击像素坐标示例4 :虚拟键盘输入示例5 :拖动触摸动作的手势控制方法示例1

动作通道

有两种执行方法

链式:

action chains (驱动程序).move _ to _ element (element ).click (.perform ) )分布式:

actions=action chains (驱动器) actions.move_to_element ) element (操作. click ) element (操作. perform )

python代码:

self.driver.get (http://sahitest.com/demo/clicks.htm ) ) click=self.driver.find _ element _ by _ XPath ) double click=self.driver.find _ element _ by _ XPath ((/* [ @ value=' dblclick me ' ] ) right click=self.drick (action=action chains (self.driver ) action.click ) element _ click (action.contextext ) ) action.double _ click

python代码:

self.driver.get (http://www.Baidu.com) ) ele=self.driver.find _ element _ by _ link _ text新闻) actiong ang )方法实现页面点击,像素坐标可以使用截图工具获取。

python代码:

actionchains(self.driver ).move_by_offset ) x,y ).click ).perform ) #左键单击actionchains(self.driver ). y ).context_click ().perform ) #示例4 )模拟键盘输入模拟键盘输入可以使用win32api模块,也可以使用selenium web element对象的send

element=self.driver.find _ element _ by _ id (element ) element.send_keys(**test'** ) element.send )

返回到action=action chains (驱动程序) action.send_keys ) keys.back_space ) # action.key _ down (keys.control )

在文本框1中输入内容,将文本框1的内容复制并粘贴到文本框2中

self.driver.get (http://sahitest.com/demo/label.htm ) ) ele1=self.driver.find _ element _ by _ XPath )

[2]/input") ele1.click() action= ActionChains(self.driver) action.send_keys("testing").pause(1) action.send_keys(Keys.SPACE).pause(1) # 空格 action.send_keys("1").pause(1) action.send_keys(Keys.BACK_SPACE) #回退 action.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL) #CTRL+A action.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL) #CTRL+C action.key_down(Keys.CONTROL,ele2).send_keys('v').key_up(Keys.CONTROL) #CTRL+V action.send_keys(Keys.BACK_SPACE).perform() 例五:拖拽

测试页面:http://sahitest.com/demo/dragDropMooTools.htm

python代码

self.driver.get("http://sahitest.com/demo/dragDropMooTools.htm") drag_ele = self.driver.find_element_by_id("dragger") Item1 = self.driver.find_element_by_xpath("/htmL/body/div[2]") Item2 = self.driver.find_element_by_xpath("/html/body/div[3]") Item3 = self.driver.find_element_by_xpath("/html/body/div[4]") action= ActionChains(self.driver) action.drag_and_drop(drag_ele, Item1).pause(1) # 方法1 action.click_and_hold(drag_ele).release(Item2).pause(1)# 方法2 action.click_and_hold(drag_ele).move_to_element(Item3).release()# 方法3 action.perform() TouchAction

ActionChains无法操作H5页面,TouchAction可以对H5页面进行操作,实现点击,滑动,拖拽,模拟手势等各种操作。

手势控制方法

double_tap 双击

flick 滑动

flick_element 从某个元素位置开始滑动

long_press 长按

move 手势移动指定偏移

Perform 执行

release 释放手势

scroll 点击并滚动

scroll_from_element 从某个元素位置开始手势点击并滚动(向下滑动为负数,向上滑动为正数)

flick_element——从某个元素位置开始手势滑动(负数:向上滑动,正数:向下滑动)

tap 在指定元素上点击

tap_and_hold 在指定元素上点击但不释放

例一:点击、滑动

百度搜索关键字,tap方法点击百度一下,滑动到底部,点击下一页

python代码:

self.driver.get("http://www.baidu.com") input = self.driver.find_element_by_id("kw") search = self.driver.find_element_by_id("su") input.send_keys("test") action = TouchActions(self.driver) action.tap(search) action.perform() action.scroll_from_element(input, 0, 10000).perform() next = self.driver.find_element_by_link_text("下一页 >") next.click() 总结

ActionChains和TouchAction实现了鼠标和键盘的模拟输入,更详细的介绍可以参考官方文档 https://selenium-python.readthedocs.io/api.html。

--THE END--
系列文章

1、Selenium Webdriver 架构
2、Selenium Web元素定位方法
3、Selenium Web元素操作
4、Web自动化测试:xpath & CSS Selector定位
5、Selenium ActionChains、TouchAction方法
6、Selenium switch_to方法
7、Selenium Select下拉框
8、Selenium多浏览器测试
9、Selenium执行JavaScript脚本
10、selenium/appium 等待方式介绍
11、Selenium Grid:在多个主机上并行执行自动化脚本


欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。