标签:execute getElementById js 填坑 webUI ICOK document click
首先js可以
document.getElementById("#ICOK")
document.getElementByName("#ICOK")
document.getElementByTagName("#ICOK")
document.getElementByClassName("#ICOK")
等方法,先在F12console执行
定位到的如果是当个结果,后面直接动作
如果是多个结果,就用数组下表取值,之后再接动作
动作有getAttribute("target"),.setAttribute(attributename,attributevalue),click();等
我的'document.getElementById("#ICOK").click();'
在F12console可以执行成功
但是放到代码里:
#执行js脚本的方法
def execute_js(self,jsl):
self.driver.execute_script(jsl)
#使用的时候的调用
js1 = 'document.getElementById("#ICOK").click();'
self.execute_js(js1)
但程序跑就报错:
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read property 'click' of null
说click了个寂寞
可想而知原因有两个:
要么元素没加载出来
要么不在你操作的frame里
我的分析了一下页面结构,确实我执行js之前的操作都在一个iframe里面
所以元素找不到
于是切换了一下iframe,从原来的iframe里面switch到了default_content
再执行就可以了
标签:execute,getElementById,js,填坑,webUI,ICOK,document,click 来源: https://www.cnblogs.com/Henna/p/15179308.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。