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 驅動程式的步驟:
- 點選這個連結。根據你的 Chrome 瀏覽器版本和作業系統型別下載 Chrome 驅動程式。
- 如果要查詢 Chrome 瀏覽器的版本,點選 Chrome 右上角的三個點,點選幫助,選擇關於谷歌瀏覽器。你可以在 about 部分檢視 Chrome 版本。
- 解壓 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()
方法通過名稱獲取 email
和 password
文字欄位以及登入按鈕。
我們使用 send_keys()
方法輸入了虛擬電子郵件和密碼,並使用 clear()
方法清除了 password
欄位。我們使用 text
、location
和 tag_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
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