如何解决:Chromedriver页面立即关闭

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

我运行了一个程序,试图在go中使用agouti / chromedriver打开网页,但是一旦它调用新页面,它就会关闭该页面。随后尝试访问该页面将导致“无效的会话ID”错误。如何使页面保持打开状态?

这是在Mac(版本10.14.5)和chromedriver(版本76.0.3809.68)上使用Go(版本1.13.3 darwin / amd64)。我也安装了最新版本的Google Chrome。我尝试将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
go selenium-chromedriver agouti
1个回答
0
投票

我找到了解决方案;原来我需要重新安装chromedriver。回顾我的日志,发生此问题是由于Chrome会在一夜之间自动更新,并且不再适用于我以前的chromedriver版本。

© www.soinside.com 2019 - 2024. All rights reserved.