今天给各位分享selenium滑动页面的知识,其中也会对selenium拖动滑块进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、动态页面的操作(滚动屏幕到指定元素位置)和DIV滚动条滚动
- 2、python+Selenium之自动滑块破解滑块验证码
- 3、selenium中TouchAction的简单使用
- 4、selenium IDE 如何实现页面的切换,也就是说,163邮箱登陆成功之后要操作成功后的页面
- 5、selenium中如何模拟页面滚动
- 6、用Selenium模拟页面滚动
动态页面的操作(滚动屏幕到指定元素位置)和DIV滚动条滚动
# 第一种方法:focus (这个是元素正好在屏幕中间)
targetElem = browser.find_element_by_xpath("//a[@id='pagnNextLink']")
browser.execute_script("arguments[0].focus();", targetElem)
# 第二种方法:scrollIntoView (这个是拖到底部了,有可能targetElem 不可见)
# targetElem = browser.find_element_by_xpath("//a[@id='pagnNextLink']/span[@id='pagnNextString']")
# browser.execute_script("arguments[0].scrollIntoView();", targetElem) # 拖动到可见的元素去
# 第三种方法: targetElem 正好在底部显示
targetElem.location_once_scrolled_into_view
# 第四种方法: targetElem 正好在底部显示
#向下滚动200px
browser.execute_script("window.scrollBy(0,200)","")
#向下滚动到页面底部
browser.execute_script("window.scrollBy(0,document.body.scrollHeight)","")
# 页面内DIV的滚动
targetElem = browser.find_element_by_xpath('//div[@class="photoGridWrapper"]')
browser.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', targetElem)
time.sleep(1)
selenium webdriver 如何实现将浏览器滚动条移动到某个位置
ActionChains(driver).move_to_element(****).perform()
将页面定位到要查看的元素位置从而变相的实现了滚动条滚动的效果。问题解决
from selenium.webdriver.common.action_chains import ActionChains
scroll_add_crowd_button = driver.find_element_by_xpath(xpath_button_add_crowd)
driver.execute_script("arguments[0].scrollIntoView();", scroll_add_crowd_button)
python+Selenium之自动滑块破解滑块验证码
头大系列:以虎嗅网注册页面的滑块验证码为例:
打开浏览器调试工具,点击左上角按钮进行页面元素跟踪,然后将鼠标移动到滑块验证码的图像上,就发现问题了,这也是关键所在:
验证码的图像是由很多个这样的10x58(宽10高58)的小方块拼接而成的。再检查一下元素标签,发现每一个小方块的元素标签里面都有background-image:url以及background-position这两个关键的信息。
既然是url,就不妨打开链接来观察。发现打开的链接是一张图片,但却是一张乱七八糟的图片。
得到这张乱七八糟的图片,第一感觉是重影。试猜想,会不会将每一个小方块的url链接图片都重叠在一起或拼接在一起就能组成我们所看到的验证码图片。
但经打开每一张图片发现,每个小方块后面的url链接的图片是一样的。
这就说明不可能是将图片进行重叠或拼接了。那就有可能是另外一种可能:将这张完整的验证码图片的部分区域切割然后打乱排序,形成一张新的图片,而这张新的图片就是我们现在所看到的乱七八糟的图片。
再观察发现,每个小方块后面还有background-position这个重要的信息。发现里面正是-157px -58px; -145px -58px;这种形式,是不是很像坐标的形式了。而进一步猜想,将我们刚刚的乱七八糟的图按每一个小方块的坐标进行切割,然后再进行排序,是不是就能得到原来完整的验证码图片了。
进行实践:
运用PIL模块的切割crop()以及粘贴paste(),重新将图片进行整合。效果神奇出现:
先不管其他了的。先把两张完整的图片拼接出来再进行下一步吧。
按照相同的方法,找到页面元素中鼠标点击后的出现缺口的验证码图片位置,找到缺口图片乱七八糟的url链接。
通过相同方法拼接:
已经得到两张关键的验证码图片,那接下来就是PIL大显身手的时候了,对比两张图片的像素点,缺口位置明显黑了一块,也就是RGB三色必然与周围的像素RGB三色差别明显。
将两张图片的每个像素点进行遍历对比,RGB三色任意一色差距大于一定的范围即视为是滑块的缺口。
找到缺口之后返回遍历的像素点的x坐标值(因为滑块只能X轴左右移动,所以y轴可以不需要用到),而x坐标就是滑块需要移动的距离。
完美拼接。但被吃了,也是美中不足:
快速,匀速,准确,所谓的“快,准,稳”,一样不差。
那就认定你是机器人来滑动的吧,把你吃掉!
selenium中TouchAction的简单使用
TouchAction,类似于ActionChains,ActionChains只是针对PC端程序鼠标模拟的一系列操作,对H5页面操作是无效的。TouchAction可以对H5页面操作,通过TouchAction可以实现点击、滑动、拖拽、多点触控,以及模拟手势等各种操作。
1.tap 在指定元素上敲击
2.double_tap 在指定元素上双敲击
3.flick 手势滑动
1.打开百度,输入“selenium测试”,通过TouchAction点击搜索框,滑动到底部,点击下一页
selenium IDE 如何实现页面的切换,也就是说,163邮箱登陆成功之后要操作成功后的页面
正常超链接点击之后的页面是不需要切换的.
需要切换的页面,根据类型有三种切换方式:
1.selectFrame
2.selectWindow
3.selectPopUp
selenium中如何模拟页面滚动
初始化成功driver后,进入到某个页面,使用
((JavascriptExecutor) driver)
.executeScript("window.scrollTo(0, document.body.scrollHeight)");
这样可以将页面滚动到底部
用Selenium模拟页面滚动
TouchActions:模拟pc和h5的点击,滑动,拖拽,多点触控等多种手势操作
实现方法:new_action.scroll_from_element(a, 0, 10000).perform(),10000表示滑动的偏移量,如果不知道大小,尽量最大。
示例:百度页面-输入'灵题库'-百度一下,然后滑动页面并最大化窗口
关于selenium滑动页面和selenium拖动滑块的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » selenium滑动页面(selenium拖动滑块)