Selenium Python 中的 Web 元素方法

Fariba Laiq 2024年2月15日
  1. 安裝 Selenium 和 Chrome WebDriver
  2. Selenium Python 中的 Web 元素方法
Selenium Python 中的 Web 元素方法

Selenium 是一個強大的 Web 瀏覽器自動化和測試工具。我們使用 Selenium 編寫指令碼,它控制 Web 瀏覽器並執行特定操作。

安裝 Selenium 和 Chrome WebDriver

要安裝 Selenium,我們使用以下命令。

#Python 3.x
pip install selenium

ChromeDriver 是 Selenium WebDriver 用來與 Chrome 互動的另一個可執行檔案。如果我們想在 Chrome 網路瀏覽器上自動執行任務,我們還需要安裝 ChromeDriver。

根據 Chrome 瀏覽器的版本,我們需要為其選擇相容的驅動程式。以下是安裝和配置 Chrome 驅動程式的步驟:

  1. 點選這個連結。根據你的 Chrome 瀏覽器版本和作業系統型別下載 Chrome 驅動程式。
  2. 如果要查詢 Chrome 瀏覽器的版本,點選 Chrome 右上角的三個點,點選幫助,選擇關於谷歌瀏覽器。你可以在 about 部分檢視 Chrome 版本。
  3. 解壓 zip 檔案並執行 Chrome 驅動程式。

Selenium Python 中的 Web 元素方法

Web 元素是網站上的 HTML 元素。它可以是文字欄位、按鈕、滾動條等。

這是我們想要與之互動的東西,比如執行單擊、填充文字欄位等。一旦我們在 Python 中獲得了一個 Web 元素,我們就可以對 Selenium 提供的該元素應用許多方法。

例如,我們在 HTML 中有以下 web 元素。

<input type="text" name="email" id="email_id" />

我們使用以下程式碼片段通過其 name 定位網路元素。

element_tf = driver.find_element_by_name("email")

或者,如果我們通過它的 id 定位它,我們將使用此方法。

element_tf = driver.find_element_by_id("email_id")

得到元素後,我們可以對它應用很多方法。一些廣泛使用的方法及其描述如下。

元素法 描述
click() 單擊任何元素。
clear() 清除文字欄位中的任何文字。
send_keys() 在文字欄位中輸入文字。
text 獲取當前元素的文字。
screenshot() 擷取當前元素的螢幕截圖並將其儲存為 PNG 檔案。
submit() 在我們完成輸入詳細資訊後提交表單的資料。
location 獲取當前元素的位置。
size 返回元素的大小。
tag_name 返回當前元素的標籤名稱。
is_selected() 返回一個布林值,指示元素是否被選中。
is_displayed() 返回一個布林值,指示元素是否在螢幕上對使用者可見
get_property() 返回元素的屬性,如錨文字的 text_length 屬性。
get_attribute() 返回元素的屬性,例如錨標記的 href 屬性。

演示 Web 元素方法的程式碼

我們在下面的程式碼中使用了上面的一些方法。我們使用 find_view_by_name() 方法通過名稱獲取 emailpassword 文字欄位以及登入按鈕。

我們使用 send_keys() 方法輸入了虛擬電子郵件和密碼,並使用 clear() 方法清除了 password 欄位。我們使用 textlocationtag_name 方法提取了登入按鈕的文字、位置和標籤名稱。

我們已經使用 is_selected()is_displayed() 方法檢查了登入按鈕是否被選中和顯示。最後,我們使用 click() 方法單擊了登入按鈕。

# Python 3.x
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.maximize_window()
driver.get("https://discpersonalitytesting.com/login-here/")
email = "myemail@email.com"
password = "mypassword1@23"
email_textfield = driver.find_element_by_name("email")
password_textfield = driver.find_element_by_name("password")
login_button = driver.find_element_by_name("LoginDAPLoginForm")
email_textfield.send_keys(email)
time.sleep(2)
password_textfield.send_keys(password)
time.sleep(3)
password_textfield.clear()
password_textfield.send_keys(password)
time.sleep(2)
print(login_button.text)
print(login_button.location)
print(login_button.is_selected())
print(login_button.is_displayed())
print(login_button.tag_name)
login_button.click()

輸出:

Login
{'x': 251, 'y': 499}
False
True
button

元素方法

作者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

相關文章 - Python Selenium