如何使用Ruby Watir运行Selenium Grid?解决NoMethodError报错
解决Watir连接Selenium Grid时的NoMethodError问题
问题原因
你遇到的错误是因为Selenium 4.x+版本已弃用旧的DesiredCapabilities和:remote初始化方式,Watir的API也同步更新,旧代码写法不再兼容新版本的依赖库。
修复后的代码
方式一:直接通过Watir初始化Remote浏览器
# 创建Chrome浏览器配置项 options = Selenium::WebDriver::Chrome::Options.new # 可根据需求添加额外配置,比如无头模式 # options.add_argument('--headless=new') # 连接Selenium Grid并初始化Watir浏览器 browser = Watir::Browser.new(:chrome, url: '<url>:4444/wd/hub', options: options)
方式二:先创建Selenium Remote Driver再传入Watir
如果需要更灵活控制Selenium Driver的配置,可以先创建Remote Driver,再交给Watir封装:
options = Selenium::WebDriver::Chrome::Options.new driver = Selenium::WebDriver.for(:remote, url: '<url>:4444/wd/hub', capabilities: options) browser = Watir::Browser.new(driver)
关键注意事项
- 确保你的Watir版本(建议7.x+)和Selenium版本(4.x+)匹配,版本不兼容也会导致类似错误。
- 替换代码中的
<url>为你的Selenium Grid节点的实际IP或域名。
内容的提问来源于stack exchange,提问作者nhan
相关产品推荐
相关产品推荐

