首先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
再执行就可以了