【RF】【元素定位】 Other element would receive the click

问题描述

错误日志:

WebDriverException: Message: unknown error: Element <div class="kui-navkjax-sideTab" _menuid="id_120000000">...</div> is not clickable at point (13, 236). Other element would receive the click: <div class="kui-frame-progress-mask" style="width: 1280px; height: 576px; background: rgb(231, 231, 231);"></div> (Session info: chrome=90.0.4430.212) (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 10.0.19041 x86_64)

描述:
登录操作后,按钮点击失败,报错如上
但仅在当前页面执行按钮点击,会执行成功
原因分析:
登录成功后,页面元素被遮盖
出现这个问题的原因是网页还没有加载成功:click时候被一个弹出的div给遮住了。
解决办法:
1.等待网站加载完成
2.使用另一个方式调用 Selenium click 事件

解决方法一:

设置 Selenium 等待时间:browser.set_page_load_timeout(60),并通过 time.sleep(30) 来等待网站加载,但是还是不能 100% 解决问题。

解决方法二:

使用另一个调用 click 事件的方法代替 click() 方法:

_item = _browser.find_element_by_id('opt204163622')
_browser.execute_script("arguments[0].click();", _item)

解决方法三:
网上还有一种方案也可以代替 click() 方法解决这个错误,大家也可以尝试下:

element = driver.find_element_by_id('opt204163622')
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()

解决办法四:
可以先定位到接收点击事件的元素,再找到底下的所需元素,CSS_SELECTOR定位(层级定位):
在这里插入图片描述

"td[data-dt-row='0']>a:nth-child(2)>span[title='办理']"

解决方法五:

button_js = 'document.querySelector("#tb_rich_poster > div.poster_body.editor_wrapper > div.poster_component.editor_bottom_panel.clearfix > div > button.btn_default.btn_middle.j_submit.poster_submit").click()'
driver.execute_script(button_js)

js操作xpath直接在谷歌浏览器审查元素那里复制出来即可!

document.querySelector("#kui-11 > div.kui-navkjax-treecontent > table > tbody > tr > td:nth-child(1) > div > div.kui-navkjax-side-container > div.kui-navkjax-sideTab.kui-navkjax-sideTab-current")

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值