gem 'selenium-webdriver', '~> 2.46.2'
gem 'watir-webdriver', '~> 0.6.11'
gem 'watir-webdriver-performance', "~> 0.2.4"
每天大约一两次我在生产中遇到以下错误,我理解这是因为'WebDriver使用端口7054(“锁定端口”)作为互斥锁,以确保我们不会在以下位置启动两个Firefox实例同时'。
Selenium::WebDriver::Error::WebDriverError: unable to bind to locking port 7054 within 45 seconds
有没有办法将webdriver的超时时间增加到150秒?或任何其他解决方法?
感谢, 格雷格
答案 0 :(得分:0)
45秒定义为Selenium::WebDriver::Firefox::Launcher
类的常量。 Ruby允许您重新定义常量,因此您可以使用const_set
更改值:
Selenium::WebDriver::Firefox::Launcher.const_set('SOCKET_LOCK_TIMEOUT', 150)
请注意,这将为您提供有关重新定义常量的警告。如果要避免警告,则必须先删除常量:
Selenium::WebDriver::Firefox::Launcher.send(:remove_const, 'SOCKET_LOCK_TIMEOUT')
Selenium::WebDriver::Firefox::Launcher.const_set('SOCKET_LOCK_TIMEOUT', 150)
(虽然这可以让你改变超时,但我不确定这是否能解决你的实际问题。)