爲什麼需要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