3

我在 Docker 容器中使用 Canopy 并希望将端口指定为 4444,而不是在调用 canopy.core.start 时分配的最终随机端口,因为多个连接错误错误:ConnectFailure(连接被拒绝) - 或失败启动驱动程序。

let chromeOptions = OpenQA.Selenium.Chrome.ChromeOptions()
chromeOptions.AddArgument("--no-sandbox")
chromeOptions.AddArgument("--disable-extensions")
chromeOptions.AddArgument("--disable-gpu")
chromeOptions.AddArgument("--disable-client-side-phishing-detection")
chromeOptions.AddArgument("--disable-suggestions-service")
chromeOptions.AddArgument("--safebrowsing-disable-download-protection")
chromeOptions.AddArgument("--no-first-run")
chromeOptions.AddArgument("--allow-insecure-localhost");
chromeOptions.AddArgument("--port=4444"); // Not taking effect; see below
let chromeNoSandbox = ChromeWithOptions(chromeOptions)
canopy.configuration.chromeDir <- "."
start chromeNoSandbox

错误:ConnectFailure(连接被拒绝)<--- docker容器中的多个

在端口 36479 <--如何指定ChromeDriver 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881)

4

1 回答 1

0

没有简单的方法可以做到这一点!

Canopy如何启动WebDriver实例是通过调用OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService("<path to the chromedriver executable on runner machine>"). (当然,所有其他浏览器都是如此)。

问题是这种方法,根据文档定义返回一个随机端口(这样做是为了确保并行运行不会获得相同的端口并崩溃。幸运的是,这种情况发生的可能性很低)。

你可以尝试做类似let a = OpenQA.ChromeDriverService.CreateDefaultService("<path>")的事情a.Port <- <port number>我不知道如何使用结果WebDriverService作为我们测试的运行者。

上的port=4444ChromeOptions不起作用,因为这不是 Chrome(或浏览器,一般来说)选项。它是一个WebDriver

我在项目的跟踪器上发布了一个问题。希望我们很快就能得到答案……

于 2019-10-15T12:07:29.413 回答