selenium執行js程式碼
阿新 • • 發佈:2022-01-07
import time from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('https://www.12306.cn/index/') # ----------------------------通過js程式碼修改元素的屬性(元素的定位不用js做)-------------------- from_ele = driver.find_element(by=By.ID, value="fromStationText") to_ele= driver.find_element(by=By.ID, value='toStationText') # js程式碼 js = """ var fro_ele = arguments[0]; var to_ele = arguments[1]; fro_ele.value = '上海'; to_ele.value = '北京'; return '操作完了'; """ # 執行js程式碼 res = driver.execute_script(js, from_ele, to_ele) # 注:除了js引數,後面的引數都會被arguments所接收,arguments是一個數組,可以通過下標取值print('js程式碼執行之後的返回值:', res) # res的值就是return出來的"操作完了" # ---------------------------------通過js來定位元素------------------------------------------- # 定位語句和在頁面上通過console輸入的語句相同(可以藉此先檢查定位語句是否有誤) js = """ var fro_ele = document.getElementById('fromStationText'); return fro_ele; """ res = driver.execute_script(js)print(res) # res是return出來的元素物件 # 後續的操作和常規的一樣 res.click() # 點選一下始發站輸入框(否則框中的提示語依然存在) res.send_keys('廣州') time.sleep(5) driver.quit()