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

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


这是点击前后的图

这是源码,应该是用了jquery的ztree插件,对前端不是很了解,哪位大神知道这种情况应该怎样模拟浏览器的操作可以点击该按钮。
感激不尽
...全文
2124 点赞 收藏 22
写回复
22 条回复
江北某不知名逼王 2020年10月09日
线程停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
回复 点赞
发动态
发帖子
脚本语言(Perl/Python)
创建于2007-08-27

1.5w+

社区成员

3.3w+

社区内容

其他开发语言 脚本语言(Perl ,Python)
社区公告
暂无公告