您基本上是在浏览器实例之间创建竞争条件以连接到watir-
webdriver找到的开放端口。在这种情况下,浏览器的第一个实例将看到端口9517已打开并连接到该端口。因为要并行拆分这些实例,所以第二个实例也认为端口9517已打开并尝试连接。但是,哎呀,第一个浏览器实例已经在使用该端口。这就是为什么您会收到此特定错误的原因。
这也解释了为什么
sleep 2解决此问题。第一个浏览器实例连接到端口9517,hibernate使第二个浏览器实例看到采用了9517。然后,它在端口9518上连接。
编辑
您可以看到如何通过
Selenium::WebDriver::Chrome::Service#initialize(here)调用
Selenium::WebDriver::PortProber(here)来实现这一点。网络驱动程序通过PortProber确定打开哪个端口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)