我运行了一个程序,它试图在 go 中使用 agouti/chromedriver 打开网页,但是一旦它调用新页面,它就会关闭页面。随后尝试访问该页面会导致“无效会话 ID”错误。如何让页面保持打开状态?
这是在 Mac(版本 10.14.5)上使用 Go(版本 1.13.3 darwin/amd64)和 chromedriver(版本 76.0.3809.68)。我也安装了最新版本的谷歌浏览器。我已经尝试更新 chrome 和 agouti,但没有改善结果。我已经退出并重新启动了 Chrome,卸载并重新安装了 Chrome,并重新启动了我的计算机,但这些都不起作用。我运行了几个 chromedriver 选项(见下文),没有它们就运行。我已经尝试过(见下文)并且没有 time.Sleep() 函数之间。我的常规 chrome 浏览器工作正常。
package main
import (
"fmt"
"time"
"github.com/sclevine/agouti"
)
func main() {
driver := agouti.ChromeDriver(
agouti.ChromeOptions("args", []string{
"--headless",
"--no-sandbox",
"--disable-dev-shm-usage",
"--disable-gpu",
"--whitelisted-ips",
"--detach",
}),
agouti.Debug,
)
fmt.Println("start")
err := driver.Start()
if err != nil {
fmt.Println("Error starting driver: " + err.Error())
return
}
page, err := driver.NewPage(agouti.Browser("chrome"))
if err != nil {
fmt.Println("Error creating new page: " + err.Error())
return
}
time.Sleep(1 * time.Second)
err = page.Navigate("https://www.google.com")
if err != nil {
fmt.Println("Error navigating to job post link: " + err.Error())
return
}
time.Sleep(1 * time.Second)
fmt.Println("end")
}
不使用 --headless 标签时,我可以看到浏览器窗口在不到一秒的时间内打开和关闭。
预期输出:
start
Starting ChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}) on port 53489
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
end
实际输出:
start
Starting ChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}) on port 53489
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Error navigating to job post link: failed to navigate: request unsuccessful: invalid session id