python selenium 定位元素以后点击无反应是什么原因?

CodeFromNow 2019-05-13 11:06:40
python selenium 在网页上获取了元素,调用了click()函数以后,没有呈现和手动点击一样的效果


这是点击前后的图

这是源码,应该是用了jquery的ztree插件,对前端不是很了解,哪位大神知道这种情况应该怎样模拟浏览器的操作可以点击该按钮。
感激不尽
...全文
4704 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
线程停1s中,可能是页面点击太快了
空虚沸腾 2019-05-16
  • 打赏
  • 举报
回复
定位不明确兄弟,推荐看下书或者案例源码模仿下
ZHOU-LONG 2019-05-14
  • 打赏
  • 举报
回复
没有定位iframe
LingTianshi 2019-05-14
  • 打赏
  • 举报
回复
确认定位,然后加sleep
陈年椰子 2019-05-14
  • 打赏
  • 举报
回复
那就试着click 一下这个新panel , 看看效果, 把可能的影响的元素都click 一下, 测试时抛出selenium 的异常, 如果不能click , 会有异常发生的。如果报错:Element is not clickable at point , 那就有可能被上层元素遮罩了。 还有个方法, 不过我没试过。你可以试试 安装浏览器的Selenium IDE ,录制你的操作, 看看点击过程。
艺术艺术 2019-05-14
  • 打赏
  • 举报
回复
你用xpath先定位一次看看,如果xpath可以成功定位点击就说明你的byid定位错了
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 9 楼 陈年椰子 的回复:
不用研究 jquery , 只要搞明白 点击时, 是那几个元素引发了 js 的click , 就是展现下一层子菜单的代码 把【功能主菜单】 到 【统计报表】 的HTML 代码帖来看看。看能否找到突破口。
看了下,这是对应的处理代码
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 9 楼 陈年椰子 的回复:
不用研究 jquery , 只要搞明白 点击时, 是那几个元素引发了 js 的click , 就是展现下一层子菜单的代码 把【功能主菜单】 到 【统计报表】 的HTML 代码帖来看看。看能否找到突破口。
你好这是网页源码
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 9 楼 陈年椰子 的回复:
不用研究 jquery , 只要搞明白 点击时, 是那几个元素引发了 js 的click , 就是展现下一层子菜单的代码 把【功能主菜单】 到 【统计报表】 的HTML 代码帖来看看。看能否找到突破口。
好的,我先梳理下,再向你请教
陈年椰子 2019-05-13
  • 打赏
  • 举报
回复
不用研究 jquery , 只要搞明白 点击时, 是那几个元素引发了 js 的click , 就是展现下一层子菜单的代码 把【功能主菜单】 到 【统计报表】 的HTML 代码帖来看看。看能否找到突破口。
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 7 楼 陈年椰子 的回复:
有这个可能, 你要查一下 ‘客户管理’的上层元素, 看是那一个元素有对应的click 事件。
主要是这里用了一个jquery的ztree,我不知道这个要怎么处理
陈年椰子 2019-05-13
  • 打赏
  • 举报
回复
有这个可能, 你要查一下 ‘客户管理’的上层元素, 看是那一个元素有对应的click 事件。
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 5 楼 陈年椰子 的回复:
从 html 源码里看不出有ID 。 定位完后, 可以试着print 元素的 text 看看, 要确保定位准确。 selenium定位元素准确后,点击失败一般就两种原因, 1、无法可视 , 2、被遮罩。
我换了一种定位方式 one_button = browser.find_element_by_xpath("//div[text() = '客户管理']") one_button.click() 用这种可以吗? 可是还是没有反应,我这么输出text是用客户管理四个字的。 顺便请问下,这和这个绑定click事件有关系吗? 有没有可能我点击的是这个元素,但是点击事件没有绑定在这个元素上呢?
陈年椰子 2019-05-13
  • 打赏
  • 举报
回复
从 html 源码里看不出有ID 。 定位完后, 可以试着print 元素的 text 看看, 要确保定位准确。 selenium定位元素准确后,点击失败一般就两种原因, 1、无法可视 , 2、被遮罩。
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 3 楼 陈年椰子 的回复:
那就要先确认你的元素定位是否准确了, 用 byxpath ?
有id,我直接by_id定位的
陈年椰子 2019-05-13
  • 打赏
  • 举报
回复
那就要先确认你的元素定位是否准确了, 用 byxpath ?
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 1 楼 陈年椰子 的回复:
是不是 定位 公海客户 点击无反应? 这种菜单, 要和实际操作一样, 先定位 【客户管理】 , click 后,等几秒, 再定位 【公海客户】 再 click .
不是的,是我获取了客户管理这个元素以后,调用click无反应,公海客户那个是我在浏览器手动点的,我想实现的就是模拟手动点击客户管理然后展开公海客户这个操作
陈年椰子 2019-05-13
  • 打赏
  • 举报
回复
是不是 定位 公海客户 点击无反应? 这种菜单, 要和实际操作一样, 先定位 【客户管理】 , click 后,等几秒, 再定位 【公海客户】 再 click .
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 13 楼 陈年椰子 的回复:
那就试着对 这两个 DIV click 一下: 第二个 panel 和第二个 panel 下的 panel header accrordion-header 这两个DIV 元素 都 click 一下, 看那个起作用。 看代码应该就这两个了。
再次请教一下: 我研究了一下源码 首先原来的代码是这样: 原先有个div 然后通过jquery又在上面生成了一个panel click事件是绑定在新生成的panel上的,这样是不是会存在遮挡的问题,导致click失效
CodeFromNow 2019-05-13
  • 打赏
  • 举报
回复
引用 13 楼 陈年椰子 的回复:
那就试着对 这两个 DIV click 一下: 第二个 panel 和第二个 panel 下的 panel header accrordion-header 这两个DIV 元素 都 click 一下, 看那个起作用。 看代码应该就这两个了。
看了下代码,panel这个面板,是通过jquery动态生成的,是否会对定位元素有影响,但是我又确实是可以定位到元素的,能输出text
加载更多回复(2)

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧