天天看點

Python的web自動化學習(一)Selenium庫的工作原理

後續會根據持續學習來更新,大家一起學習

引言:

Selenium是一個流行的自動化測試工具,用于模拟和控制浏覽器行為,常用于Web應用程式的功能測試和驗收測試。Selenium支援多種程式設計語言,包括Python、Java、C#等,并提供了一組API,用于操作浏覽器的各種行為。

Selenium庫的工作原理主要包括以下幾個關鍵元件:

Python的web自動化學習(一)Selenium庫的工作原理

我們以谷歌浏覽器為例來一起進行學習:

  1. WebDriver:

WebDriver是Selenium的核心元件,它提供了與各種浏覽器的互動能力。通過WebDriver,Selenium可以自動化啟動浏覽器、打開URL、填寫表單、點選按鈕、擷取元素屬性等等操作。

  1. 浏覽器驅動:

Selenium需要與浏覽器進行互動,是以需要安裝相應的浏覽器驅動。不同的浏覽器需要對應不同的浏覽器驅動,比如Chrome需要ChromeDriver,Firefox需要GeckoDriver。驅動程式将接收來自Selenium的指令,并在浏覽器中執行相應的操作

下面介紹兩個常用的驅動下載下傳位址:

Chrome浏覽器驅動下載下傳位址:http://chromedriver.storage.googleapis.com/index.htm

Firefox(火狐)浏覽器驅動:https://github.com/mozilla/geckodriver/releases/

  1. 定位元素:

Selenium可以通過各種方式來定位Web頁面上的元素,比如ID、名稱、類名、連結文本等等。通過定位元素,Selenium可以準确地找到需要操作的頁面元素。

前面文章有介紹過元素定位 可參考:https://www.toutiao.com/article/7260753838771290661/

  1. 執行操作:

一旦定位到Web元素,Selenium可以執行多種操作,如點選、輸入文本、擷取元素屬性等。這些操作可以模拟使用者在浏覽器中的行為。以下是執行個體說明

點選操作:

  • Chrome浏覽器:
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")

button = driver.find_element_by_xpath("//button[@id='myButton']")
button.click()           

Firefox浏覽器:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://example.com")

button = driver.find_element_by_xpath("//button[@id='myButton']")
button.click()           

輸入文本操作:

Chrome浏覽器:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")

input_box = driver.find_element_by_xpath("//input[@id='myInput']")
input_box.send_keys("Hello World")           

Firefox浏覽器:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://example.com")

input_box = driver.find_element_by_xpath("//input[@id='myInput']")
input_box.send_keys("Hello World")           

擷取元素屬性:

Chrome浏覽器:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")

element = driver.find_element_by_xpath("//div[@class='myDiv']")
text = element.text           

Firefox浏覽器:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://example.com")

element = driver.find_element_by_xpath("//div[@class='myDiv']")
text = element.text           
  1. 斷言和驗證:在自動化測試中,驗證頁面上的特定行為和結果非常重要。Selenium提供了豐富的斷言和驗證方法,以確定應用程式的正确性。

頁面标題斷言:

Chrome浏覽器:

from selenium import webdriver
import assert

driver = webdriver.Chrome()
driver.get("https://example.com")

title = driver.title
assert "Example" in title           

Firefox浏覽器:

from selenium import webdriver
import assert

driver = webdriver.Firefox()
driver.get("https://example.com")

title = driver.title
assert "Example" in title           

頁面文本斷言:

Chrome浏覽器:

from selenium import webdriver
import assert

driver = webdriver.Chrome()
driver.get("https://example.com")

element = driver.find_element_by_xpath("//div[@class='myDiv']")
text = element.text
assert "Hello world" in text           

Firefox浏覽器:

from selenium import webdriver
import assert

driver = webdriver.Firefox()
driver.get("https://example.com")

element = driver.find_element_by_xpath("//div[@class='myDiv']")
text = element.text
assert "Hello world" in text           

這些示例示範了在不同的浏覽器中執行斷言操作。無論使用哪種浏覽器驅動,您可以使用相同的斷言方法來驗證頁面标題、文本等内容。隻需根據所使用的浏覽器類型選擇适當的驅動程式,然後使用相同的斷言語句來進行驗證。