當前位置:
首頁 > 知識 > 使用 Selenium 自動化 Web 瀏覽器

使用 Selenium 自動化 Web 瀏覽器

使用 Selenium 自動化 Web 瀏覽器


編譯自: https://fedoramagazine.org/automate-web-browser-selenium/

作者: Lennart Jern

譯者: geekpi

Selenium 是瀏覽器自動化的絕佳工具。使用 Selenium IDE,你可以錄製命令序列(如單擊、拖動和輸入),驗證結果並最終存儲此自動化測試供日後使用。這非常適合在瀏覽器中進行活躍開發。但是當你想要將這些測試與 CI/CD 流集成時,是時候使用 Selenium WebDriver 了。

WebDriver 公開了一個綁定了許多編程語言的 API,它允許你將瀏覽器測試與其他測試集成。這篇文章向你展示了如何在容器中運行 WebDriver 並將其與 Python 程序一起使用。


使用 Podman 運行 Selenium

Podman 是下面例子的容器運行時。有關如何開始使用 Podman 的信息,請參見 此前文章 。

此例使用了 Selenium 的獨立容器,其中包含 WebDriver 伺服器和瀏覽器本身。要在後台啟動伺服器容器,請運行以下命令:


$ podman run -d --network host --privileged --name server docker.io/selenium/standalone-firefox

當你使用特權標誌和主機網路運行容器時,你可以稍後從在 Python 中連接到此容器。你不需要使用 sudo。


在 Python 中使用 Selenium

現在你可以提供一個使用此伺服器的簡單程序。這個程序很小,但應該會讓你知道可以做什麼:


from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

server ="http://127.0.0.1:4444/wd/hub"

driver = webdriver.Remote(command_executor=server,

desired_capabilities=DesiredCapabilities.FIREFOX)

print("Loading page...")

driver.get("https://fedoramagazine.org/")

print("Loaded")

assert "Fedora" in driver.title

driver.quit()

print("Done.")

首先,程序連接到你已經啟動的容器。然後它載入 Fedora Magazine 網頁並判斷 「Fedora」 是頁面標題的一部分。最後,它退出會話。

需要 Python 綁定才能運行此程序。既然你已經在使用容器了,為什麼不在容器中這樣做呢?將以下內容保存到 Dockerfile 中:


FROM fedora:29

RUN dnf -y install python3

RUN pip3 install selenium

然後使用 Podman 在與 Dockerfile 相同的文件夾中構建容器鏡像:


$ podman build -t selenium-python .

要在容器中運行程序,在運行容器時將包含 Python 代碼的文件作為卷掛載:


$ podman run -t --rm --network host

-v $(pwd)/browser-test.py:/browser-test.py:z

selenium-python python3 browser-test.py

輸出看上去像這樣:


Loading page...

Loaded

Done.

接下來做什麼

上面的示常式序是最小的,也許沒那麼有用。但這僅僅是最表面的東西!查看 Selenium 和 Python 綁定 的文檔。在那裡,你將找到有關如何在頁面中查找元素、處理彈出窗口或填寫表單的示例。拖放也是可能的,當然還有等待事件。

在實現一些不錯的測試後,你可能希望將它們包含在 CI/CD 流程中。幸運的是,這是相當直接的,因為一切都是容器化的。

你可能也有興趣設置 grid 來並行運行測試。這不僅有助於加快速度,還允許你同時測試多個不同的瀏覽器。


清理

當你容器使用完後,可以使用以下命令停止並刪除獨立容器:


$ podman stop server

$ podman rm server

如果你還想釋放磁碟空間,請運行以下命令刪除鏡像:


$ podman rmi docker.io/selenium/standalone-firefox

$ podman rmi selenium-python fedora:29

總結

在本篇中,你已經看到使用容器技術開始使用 Selenium 是多麼容易。它允許你自動化與網站的交互,以及測試交互。Podman 允許你在沒有超級用戶許可權或 Docker 守護程序的情況下運行所需的容器。最後,Python 綁定允許你使用普通的 Python 代碼與瀏覽器進行交互。



via: https://fedoramagazine.org/automate-web-browser-selenium/

作者: Lennart Jern 選題: lujun9972 譯者: geekpi 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


點擊「了解更多」可訪問文內鏈接

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux技術 的精彩文章:

DevOps 應聘者應該準備回答的 20 個問題
Emacs 系列(一):拋掉一切,投入 Emacs 和 org 模式的懷抱

TAG:Linux技術 |