Selenium + Go - 如何做?

问题描述 投票:0回答:1

我开始用Go语言研究Selenium,但没有找到太多信息。 我正在使用 github.com/tebeka/selenium

在 Python 中,我只需安装 (pip install selenium) 和这样的代码即可打开浏览器:

from selenium import webdriver
driver = webdriver.Chrome(executable_path=r'./chromedriver.exe')
driver.get('http://www.hp.com')

我如何在 Go 中做同样的事情? 我正在尝试这个,但它不会像 Python 那样打开浏览器:

package main
import (
    "fmt"
    "github.com/tebeka/selenium"
)

func main() {
    selenium.ChromeDriver("./chromedriver.exe")
    caps := selenium.Capabilities{"browserName": "chrome"}
    selenium.NewRemote(caps, fmt.Sprintf("http://www.google.com", 80))
}

有没有一种简单的方法可以像 3 行 Python 代码一样在我的机器中打开浏览器? 谢谢!

go
1个回答
4
投票

在 python selenium 中,它会自动启动浏览器,而 Golang 不会。您必须显式运行浏览器(服务)。这是一个将 Chromedriver 与 Golang 结合使用的简单示例。

package main

import (
    "github.com/tebeka/selenium"
    "github.com/tebeka/selenium/chrome"
)

func main() error {
    // Run Chrome browser
    service, err := selenium.NewChromeDriverService("./chromedriver", 4444)
    if err != nil {
        panic(err)
    }
    defer service.Stop()

    caps := selenium.Capabilities{}
    caps.AddChrome(chrome.Capabilities{Args: []string{
        "window-size=1920x1080",
        "--no-sandbox",
        "--disable-dev-shm-usage",
        "disable-gpu",
        // "--headless",  // comment out this line to see the browser
    }})

    driver, err := selenium.NewRemote(caps, "")
    if err != nil {
        panic(err)
    }

    driver.Get("https://www.google.com")
}
© www.soinside.com 2019 - 2024. All rights reserved.