为什么需要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工具类