selenium元素单击不稳定解决方法

selenium自动化测试过程中,经常会发现某一元素单击,很不稳定,有时候执行了点击没有反映。

以下总结解决方法:
selenium自带click方法,有的时候不好用,元素定位到了,但是就是点不上。

1. selenium自带的click()方法:

from selenium import  webdriver
el = driver.find_element(By.ID,ID)  # 找到元素
el.click() # 执行点击

缺陷:不稳定

2. 鼠标操作

from selenium import  webdriver
from selenium.webdriver.common.action_chains import ActionChains
el = driver.find_element(By.ID,ID)  # 找到元素
ActionChains(driver).move_to_element(el).click().perform()

鼠标操作的局限于操作依然是模拟页面操作,如果存在元素遮挡无法显示的情况,无法使用

3.找到元素,之后用js注入单击 【常用】

有人可能会问,都找到元素了,直接element.click()不就好了。

这样是可以,但是本文的内容是,有一些不稳定。element.click(),有时定位到元素了,点击没生效。

 element = driver.find_element(*loc)
 driver.execute_script("arguments[0].click();",element)

JS直接运行不会存在遮罩的问题,健壮性是最好的。
补充:JS也有一个问题,使用JS点击,由于没有在页面真正的进行点击操作,触发不了按钮对应的JS脚本,可能导致系统无法按照预期效果运行。这种特殊情况下可使用其他点击操作代替

最大的问题是不会报错,有的时候Xpath写错了,使用JS运行点击不会报错,就是没有效果。

4.F12查一看,要点击的按钮,或连接,有没有οnclick=func();这样调用方法

如果有的话,可以直接用js调用方法名


driver.execute_script("func();)
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值