填坑webUI自动化js点击

首先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

再执行就可以了

 

上一篇:HTML(三)—实体符号


下一篇:JavaScript简单实现图片点击切换