一、介紹goselenium
goselenium是一個基於Go編程語言的自動化測試框架,它使用Selenium WebDriver API,可以幫助我們以編程的方式控制瀏覽器,模擬用戶在Web上的操作。
goselenium提供了開啟、關閉瀏覽器,設置代理伺服器,最大化瀏覽器窗口,獲取頁面元素,進行頁面跳轉,填寫表單,模擬滑鼠和鍵盤操作等一系列操作。
package main
import (
"fmt"
"time"
"github.com/tebeka/selenium"
"github.com/tebeka/selenium/chrome"
)
func main() {
// 啟動Chrome瀏覽器
caps := selenium.Capabilities{"browserName": "chrome"}
chromeCaps := chrome.Capabilities{
Path: "/path/to/chrome", // Chrome瀏覽器的路徑
}
caps.AddChrome(chromeCaps)
wd, err := selenium.NewRemote(caps, "http://localhost:9515")
if err != nil {
panic(err)
}
defer wd.Quit()
// 打開網站
err = wd.Get("https://www.baidu.com")
if err != nil {
panic(err)
}
// 搜索關鍵字
searchBox, err := wd.FindElement(selenium.ByCSSSelector, "#kw")
if err != nil {
panic(err)
}
searchBox.SendKeys("goselenium")
searchBox.Submit()
// 等待搜索結果出現
time.Sleep(5 * time.Second)
// 獲取搜索結果
result, err := wd.FindElement(selenium.ByCSSSelector, "div.result h3 a")
if err != nil {
panic(err)
}
fmt.Printf("搜索結果:%s\n", result.Text())
}
二、啟動並關閉瀏覽器
goselenium可以啟動多個瀏覽器,其中常用的瀏覽器包括Chrome、Firefox、Safari等。下面的示例代碼展示如何啟動Chrome瀏覽器和關閉瀏覽器:
// 啟動Chrome瀏覽器
caps := selenium.Capabilities{"browserName": "chrome"}
chromeCaps := chrome.Capabilities{
Path: "/path/to/chrome", // Chrome瀏覽器的路徑
}
caps.AddChrome(chromeCaps)
wd, err := selenium.NewRemote(caps, "http://localhost:9515")
if err != nil {
panic(err)
}
defer wd.Quit() // 關閉瀏覽器
三、控制瀏覽器窗口
goselenium可以修改瀏覽器窗口的大小、位置和最大化。下面的示例代碼展示如何設置瀏覽器窗口的大小和最大化:
// 設置瀏覽器窗口大小
err = wd.SetWindowRect(selenium.Rect{Width: 1024, Height: 768})
if err != nil {
panic(err)
}
// 最大化瀏覽器窗口
err = wd.MaximizeWindow("")
if err != nil {
panic(err)
}
四、獲取頁面元素
goselenium可以獲取頁面元素,其中包括元素的ID、名稱、類名、CSS選擇器、鏈接文本和標籤名稱等。下面的示例代碼展示如何獲取頁面元素:
// 獲取搜索框
searchBox, err := wd.FindElement(selenium.ByCSSSelector, "#kw")
if err != nil {
panic(err)
}
// 獲取搜索按鈕
searchButton, err := wd.FindElement(selenium.ByCSSSelector, "#su")
if err != nil {
panic(err)
}
五、操作頁面元素
goselenium可以對頁面元素進行填寫、點擊、清空、提交等操作。下面的示例代碼展示如何在搜索框中填寫關鍵字並點擊搜索:
// 填寫關鍵字
searchBox.SendKeys("goselenium")
// 點擊搜索按鈕
searchButton.Click()
六、等待頁面元素出現
goselenium可以等待頁面元素出現,這是Web自動化測試中必不可少的一步。下面的示例代碼展示如何等待搜索結果出現:
// 等待元素出現
searchResults, err := wd.WaitUntil(
selenium.FindElement(selenium.ByCSSSelector, "#search-results"),
10*time.Second,
)
if err != nil {
panic(err)
}
七、模擬滑鼠和鍵盤操作
goselenium可以模擬滑鼠和鍵盤操作,包括按鍵、釋放鍵、單擊、雙擊、拖拽等。下面的示例代碼展示如何模擬滑鼠和鍵盤操作:
// 模擬單擊
searchButton.Click()
// 模擬按鍵
searchBox.SendKeys(selenium.ControlKey + "a")
searchBox.SendKeys(selenium.DeleteKey)
八、設置代理伺服器
goselenium可以使用代理伺服器來進行Web自動化測試,支持HTTP代理、SOCKS代理和FTP代理。下面的示例代碼展示如何使用HTTP代理伺服器:
// 設置代理伺服器
proxy := selenium.Proxy{
HTTPProxy: "http://localhost:8080",
}
caps.SetProxy(proxy)
原創文章,作者:DCNI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132949.html