selenium go
时间: 2023-09-19 08:05:42 浏览: 117
Selenium 是一个自动化测试工具,主要用于模拟用户在浏览器上的操作,比如填写表单、点击链接等等。它支持多种编程语言,包括 Go。使用 Go 编写 Selenium 脚本可以让你更方便地进行自动化测试。
在 Go 中,你可以使用第三方库来操作 Selenium。其中最常用的是 go-selenium。这个库提供了一组 API,可以让你在 Go 中轻松地控制 Selenium。
以下是一个使用 go-selenium 的示例程序,它将打开 Google 搜索页面,并在搜索框中输入关键字 "Golang":
```go
package main
import (
"fmt"
"time"
"github.com/tebeka/selenium"
"github.com/tebeka/selenium/chrome"
)
func main() {
// 启动 Chrome 浏览器
opts := []selenium.ServiceOption{}
service, err := selenium.NewChromeDriverService("chromedriver", 9515, opts...)
if err != nil {
panic(err)
}
defer service.Stop()
// 设置 Chrome 浏览器选项
caps := selenium.Capabilities{
"browserName": "chrome",
}
chromeCaps := chrome.Capabilities{
Path: "",
Args: []string{
"--headless",
"--no-sandbox",
"--disable-gpu",
"--disable-dev-shm-usage",
"--disable-extensions",
"--disable-web-security",
"--ignore-certificate-errors",
},
}
caps.AddChrome(chromeCaps)
// 连接到 Selenium 服务器
wd, err := selenium.NewRemote(caps, fmt.Sprintf("http://localhost:%d/wd/hub", 9515))
if err != nil {
panic(err)
}
defer wd.Quit()
// 打开 Google 搜索页面
if err := wd.Get("https://www.google.com/"); err != nil {
panic(err)
}
// 在搜索框中输入关键字 "Golang"
elem, err := wd.FindElement(selenium.ByCSSSelector, "input[name='q']")
if err != nil {
panic(err)
}
if err := elem.SendKeys("Golang"); err != nil {
panic(err)
}
if err := elem.Submit(); err != nil {
panic(err)
}
// 等待搜索结果加载完成
time.Sleep(5 * time.Second)
// 输出搜索结果页面的标题
title, err := wd.Title()
if err != nil {
panic(err)
}
fmt.Println(title)
}
```
在运行这个程序之前,你需要先下载 Chrome 浏览器和 ChromeDriver 驱动程序,并将 ChromeDriver 的路径添加到系统 PATH 中。然后你可以使用以下命令运行程序:
```sh
go run main.go
```
程序会启动一个 headless Chrome 浏览器实例,打开 Google 搜索页面,并在搜索框中输入关键字 "Golang"。然后它会等待搜索结果加载完成,并输出搜索结果页面的标题。
阅读全文