在Selenium操作中js脚本

本文介绍了解决Selenium自动化测试中元素被图层遮挡的问题,通过使用JavaScript脚本进行元素点击和页面滚动,提供了实用的代码示例。

在进行自动化测试的测试时遇到了这个报错信息

经过一番百度之后意识到是图层遮挡的问题

Selenium可以切换iframe却不可以操作页面图层(可能是我不会吧)

但是却找到了js操作网页图层的方法

然后刚好想到Selenium中可以运行js脚本片段(这就很搭了(✪ω✪))

 

错误信息:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <a href="#" class="prefpanelgo">...</a> is not clickable at point (580, 40). Other element would receive the click: <label for="sh_1">...</label>
(Session info: chrome=74.0.3729.131)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.16299 x86_64)

 

1.Selenium定位的元素被图层遮挡了的解决办法

针对遮挡问题

# 定位到要操作的元素
el = driver.find_element_by_css_selector('[class="prefpanelgo"]')

#代码如下就点击到点击到定位的元素了
driver.execute_script("arguments[0].click();", el)
# 一般图层就是点击用,要做其他的话就把click方法和元素对象删除了就可以吧(我猜的)
# arguments[0]应该就是切换到最上层的图层(没错也是我猜哒!)

 

相当好用,因为直接注入js脚本,就不是在屏幕上操作了,而是js操作,神级操作啊

 

2.Selenium中写js进行页面的下滑操作

# x是水平方向,y是垂直方向单位是像素px
js = 'window.scrollTo(0,1000)'
driver.execute_script(js)

3.Selenium中写js让页面向上滑动

# scrollTop=800就是滑动块距离顶部的距离值px
# scrollTop=0就是回到顶部
 js = 'var q=document.documentElement.scrollTop=800' driver.execute_script(js)

 

遇到问题的时候就说明你要学习了!加油,在秃头之路上越走越远!!

转载于:https://www.cnblogs.com/ali-test/p/11348057.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值