docker - 如何在Canopy( Selenium 库)中设置ChromeDriver端口?

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

我在Docker容器中使用Canopy,并且由于多个连接错误而想在调用canopy.core.start时将端口指定为4444,而不是指定的最终随机端口错误: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

Error: ConnectFailure (Connection refused) <--- Multiple of these in a docker container

Starting ChromeDriver 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881) on port 36479 <-- How to specify this?

最佳答案

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

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=4444上的ChromeOptions位不起作用,因为这不是Chrome(或一般来说是浏览器)选项。它是一个WebDriver。

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

关于docker - 如何在Canopy( Selenium 库)中设置ChromeDriver端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49448201/

相关文章:

selenium - 现在 chrome 在使用 Watir-webdriver 时更新了未知命令

docker 丢弃功能未按预期工作?

docker - 使用默认值时访问 COMPOSE_PROJECT_NAME

docker - Node-red容器无法安装

math - F#:整数 (%) 整数 - 是如何计算的?

f# - F#:为什么我不能在松散函数中使用可选参数?

docker - Selenium 与 behat : Unable to find provider for session

f# - 我可以使用 StringFormat 作为 TextWriterFormat 吗? kfprintf/kprintf 用法

Python:新浏览器对象上的 selenium-chromedriver 错误

python - 使用 chromedriver 从 Selenium 打印 PDF