为什么需要js?
我们需要执行函数,但是实现成本很高或很难甚至无法实现事件的时候,可以直接通过js命令调用
页面上有些元素无点击事件,不可点击等,调用js直接实现效果即可
还有种种原因导致,没达到我们想要的效果。
使用js是一种途径(方法)
1.添加 webdriver依赖
from selenium import webdriver
2.编写js命令,存储为字符串形式
# js = "document.getElementsByClassName(\"" + className + "\")[0].style.display='block';" js = "document.getElementsByClassName(hhidden)[0].style.display='block';" #根据ClassName寻找,注意ELements js = "document.getElementsById(name)[0].style.display='block';" #根据Id
3.执行js命令
driver = webdriver.Chrome() # 获取Chrome驱动 driver.execute_script(js) # 执行js
4.完整代码
# -- coding:utf-8 -- from selenium import webdriver driver = webdriver.Chrome() js = "document.getElementsByClassName(hhidden)[0].style.display='block';" driver.execute_script(js)
5.只作为脚本执行
# -- coding:utf-8 -- from selenium import webdriver def run(): driver = webdriver.Chrome() js = "document.getElementsByClassName(hhidden)[0].style.display='block';" driver.execute_script(js) if __name__ == '__main__': run()
6.封装成工具
# -- coding:utf-8 -- class jsUtil: """生成js语句的工具""" def __init__(self): """实例化js工具""" self.index = 0 def displayFormClass(self, className, index=None): """返回将class的隐藏元素显示出来的js语句""" js = "document.getElementsByClassName(\"" + className + "\")[" if index != None: js = js + str(index) else: js = js + str(self.index) js = js + "].style.display='block';" return js
更多推荐
Python 3、selenium/执行js命令显示隐藏元素,封装js工具类
发布评论