如何在Canopy(selenium库)中设置ChromeDriver端口?

时间:2018-03-23 11:01:23

标签: docker f# selenium-chromedriver canopy-web-testing

我在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(拒绝连接)&lt; --- Docker容器中的多个

     

启动ChromeDriver 2.35.528139   (47ead77cb35ad2a9a83248b292151462a66cd881)在端口36479上&lt; - 如何指定?

1 个答案:

答案 0 :(得分:0)

没有简单的方法!

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

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

您可以尝试做类似let a = OpenQA.ChromeDriverService.CreateDefaultService("<path>")的操作,然后再进行a.Port <- <port number>但是,我不知道如何使用结果WebDriverService作为我们的跑步者测试。

port=4444上的ChromeOptions位不起作用,因为它不是Chrome(通常是浏览器)选项。这是 WebDriver 之一。

我在项目的tracker上发布了一个问题。希望我们能尽快得到答案...