1.新建工程
使用GoLand新建工程如下:
打开终端输入如下命令安装Selenium
go get -u github.com/tebeka/selenium
2.编写代码
package mainimport ("fmt""github.com/tebeka/selenium""log""time"
)const (chromeDriverPath = "/opt/homebrew/bin/chromedriver"port = 4444
)func main() {var opts []selenium.ServiceOptionservice, err := selenium.NewChromeDriverService(chromeDriverPath, port, opts...)if err != nil {log.Fatalf("Error starting the ChromeDriver server: %v", err)}defer func(service *selenium.Service) {err := service.Stop()if err != nil {log.Fatalf("Error to stop: %v", err)}}(service)caps := selenium.Capabilities{"browserName": "chrome",}wd, err := selenium.NewRemote(caps, fmt.Sprintf("http://localhost:%d/wd/hub", port))if err != nil {log.Fatalf("Error creating new WebDriver instance: %v", err)}defer func(wd selenium.WebDriver) {err := wd.Quit()if err != nil {log.Fatalf("Error to quit: %v", err)}}(wd)err = wd.Get("https://www.baidu.com")if err != nil {log.Fatalf("Failed to load page: %s\n", err)}time.Sleep(3 * time.Second)searchBox, err := wd.FindElement(selenium.ByID, "kw")if err != nil {log.Fatalf("Failed to find search input box: %s\n", err)}err = searchBox.SendKeys("Hello")if err != nil {log.Fatalf("Failed to send keys to search input box: %s\n", err)}searchButton, err := wd.FindElement(selenium.ByID, "su")if err != nil {log.Fatalf("Failed to find search button: %s\n", err)}err = searchButton.Click()time.Sleep(3 * time.Second)
}
然后执行main函数即可