如何使用 Selenium Python 點選按鈕?
我們可以使用 Python 中的 Selenium Webdriver 和 click() 方法點選按鈕。首先,我們需要藉助任何定位器(如 id、name、class、XPath、tagname 或 CSS 選擇器)來識別要點選的按鈕。然後,我們必須在其上應用 click() 方法。
常用方法
在 Python 中點選 Selenium 按鈕的兩種常用方法是使用諸如 Xpath 之類的定位器以及使用 JavaScript 執行器。
-
使用 X_path 定位器:用於定位網頁上帶有文字的按鈕的屬性。
-
使用 'execute_script()' 方法:此方法使用 JavaScript 來點選按鈕。
使用 X_path 定位按鈕
Xpath(XML 路徑語言)用於定位網頁中的元素。當元素沒有易於訪問的 ID 或類名時,我們可以使用此方法。
l = driver.find_element_by_xpath("//button[text()='Check it Now']")
此方法提供了從文件根目錄到元素的完整路徑。透過使用此 X_path,我們可以根據各種屬性(文字、類)定位元素。
開啟瀏覽器和 URL
我們必須建立一個 WebDriver 物件,使我們能夠開啟一個 web 瀏覽器以及網頁的 URL。在下面的程式碼中,'get()' 函式用於在 Chrome 瀏覽器中開啟 Selenium URL('https://www.Example.com/')。
# creating an object of chrome webdriver
driver = webdriver.Chrome(executable_path = r'./chromedriver')
# To open selenium URL in chrome browser
driver.get('https://www.Example.com')
使用 click 方法的程式碼實現
在下面的示例程式碼中,driver = webdriver.Chrome() 函式使用 Selenium 初始化瀏覽器,並提供 chromedriver 可執行檔案的路徑。找到按鈕後,click() 方法會在按鈕上執行點選操作。
from selenium import webdriver
# set chromodriver.exe path
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# implicit wait
driver.implicitly_wait(0.5)
#maximize browser
driver.maximize_window()
# launch URL
driver.get("https://tutorialspoint.tw/index.htm")
#identify element
l =driver.find_element_by_xpath("//button[text()='Check it Now']")
# perform click
l.click()
print("Page title is: ")
print(driver.title)
# close browser
driver.quit()
使用 'execute_script()' 方法
Selenium 可以藉助 execute_script() 和 arguments[0].click() 方法執行 JavaScript 等命令,並且元素定位器 (X_path_) 作為引數傳遞給此方法。
driver.execute_script("arguments[0].click();", l);
使用 execute 方法的程式碼實現
在下面的示例程式碼中,driver.execute_script() 函式使用 JavaScript 來點選按鈕,其中表達式 "arguments[0].click();" 點選傳遞的元素。
from selenium import webdriver
# set chromodriver.exe path
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# implicit wait
driver.implicitly_wait(0.5)
#maximize browser
driver.maximize_window()
# launch URL
driver.get("https://tutorialspoint.tw/index.htm")
# identify element
l =driver.find_element_by_xpath("//button[text()='Check it Now']")
# perform click with execute_script
driver.execute_script("arguments[0].click();", l);
print("Page title is: ")
print(driver.title)
# close browser
driver.quit()
輸出

資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP