如何使用 Python 中 Selenium 的 Javascript 執行器點選按鈕?
我們可以使用 Selenium 中的 Javascript 執行器點選按鈕。Javascript 是一種用於指令碼編寫的語言,並在客戶端(瀏覽器上)執行。Selenium 提供了預設方法來使用 Javascript。
語法
b = driver.find_element_by_xpath("//input[starts-with(@class,'gsc')]")
driver.execute_script("arguments[0].click();", b)有兩種方法可以在瀏覽器中執行 Javascript:
在文件根級別執行 Javascript。在此過程中,我們將使用定位器(類或 ID)識別元素,然後對其執行所需的操作。然後呼叫 execute_script() 方法,並將 Javascript 作為字串傳遞給它。
語法
javas = "document.getElementsByName('user-search')[0].click();"
driver.execute_script(javas)請注意,我們使用了 getElementsByName('user-search')[0]。getElementsByName 和 getElementsById 等函式返回匹配元素的陣列。因此,要定位第一個元素,使用索引 [0]。
但是,如果我們使用 getElementById 函式,則無需使用索引,因為此處只引用一個匹配元素。
最後,為了執行,WebDriver 將 Javascript 語句放入瀏覽器,然後執行必要的操作,例如點選所需的按鈕。此 Javascript 不會與網頁中存在的 Javascript 混合。
在元素級別執行 Javascript。在此過程中,我們將使用 WebDriver 方法(如 find_element_by_xpath 或 find_element_by_id 等)識別元素。然後對其執行必要的操作,例如點選元素。最後,呼叫 execute_script() 方法。此方法具有 Javascript 語句和已識別的 Web 元素作為引數。
語法
userN= driver.find_element_by_id("user-search']")
driver.execute_script("arguments[0].click();", userN)Javascript 執行器還可以返回值。因此,execute_script() 可以返回值,例如,我們可以使用此概念獲取頁面的標題。
語法
print driver.execute_script('return document.title')示例
使用 Javascript 點選按鈕的程式碼實現。
from selenium import webdriver
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then
#invoke #actual browser
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# to maximize the browser window
driver.maximize_window()
#get method to launch the URL
driver.get("https://tutorialspoint.tw/about/about_careers.htm")
#to refresh the browser
driver.refresh()
# identifying button then click with help of Javascript executor
b = driver.find_element_by_xpath("//input[starts-with(@class,'gsc')]")
driver.execute_script("arguments[0].click();", b)
#to close the browser
driver.close()
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP