如何使用 Selenium Python 點選按鈕?


我們可以使用 Python 中的 Selenium Webdriverclick() 方法點選按鈕。首先,我們需要藉助任何定位器(如 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()

輸出


更新於: 2024年9月10日

50K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告