python selenium to click an element not visible

python selenium to click an element not visible

症状  在 我的MAC 上   Chrome  PhantomJS 都是可以正常运行的  换到 Linux 服务器上  PhantomJS 就不行了 

find_element_by_id 

find_element_by_xpath  

find_element_by_class 这些方法也是可以找到的 if 

find_element_by_class_value: 是True ....  表示标签是可以找到 但是不可以操作

猜测是环境的问题:  都是用的最新的 PhantomJS 2.1.1  

网上大多的解决方法是 设置 浏览器的大小 我不敢下结论 人家的回答是坑,但是在我这里尝试确实是没有用,有可能我写的分辨率 不是我服务的分辨率,所以才没有起到效果
解决办法:
1.由于我查找的是个a标签 是个超链接 用re.find_all() 找到当前的我需要的链接 然后再get一下 这个链接 ,是可以行的通的
这样做 完全隔离了 

find_element_by_* 的方法了。绕过了 找标签 然后模拟点击 


完事之后复盘:想找到一种通用的方法来解决这类问题(只是我这次是个超链接 我可以用 re 去找 ,如果是个button 该怎么办)
猜想1:
是不是因为鼠标没有动  没有激发某些JS 导致当前界面没有调用出来
操作 结果
然后模拟移动鼠标-- 失败
设置

execute_script(a.style.display ='block') 失败

设置鼠标左右键点点 失败

这些都是为了 放element 显示出来 看来真的绕过去这个 元素显示不显示的问题了 
接下来放大招 绕过去 Python 去查找元素 直接使用JS 
正好当前界面引用还是有 jQuery  这就好办了 定位当前 元素 a.click();
JS 模拟点击 

建议 以后Python查找方法不好用直接改JS吧 改JS  兼容性只在 你算选的浏览器上 跟你所在的服务器 还是自己的PC 机 是没有关系的

程序改变生活
老规矩吧 QQ:973683374









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值