Ruby Watir警告-Selenium::WebDriver::Error::ObsoleteElementError
嘿,大家好,我在运行我的watir测试自动化代码时收到了一个警告,尽管它可以工作,但我想解决它 警告:2020-02-12 08:35:47警告硒[弃用] Selenium::WebDriver::Error::ObsoleteElementError已被弃用。使用 Selenium::WebDriver::Error::StaleElementReferenceError(确保 驱动程序支持W3C WebDriver规范) 有问题的代码行:Ruby Watir警告-Selenium::WebDriver::Error::ObsoleteElementError,ruby,selenium-webdriver,watir,Ruby,Selenium Webdriver,Watir,嘿,大家好,我在运行我的watir测试自动化代码时收到了一个警告,尽管它可以工作,但我想解决它 警告:2020-02-12 08:35:47警告硒[弃用] Selenium::WebDriver::Error::ObsoleteElementError已被弃用。使用 Selenium::WebDriver::Error::StaleElementReferenceError(确保 驱动程序支持W3C WebDriver规范) 有问题的代码行: iframe.select(:id => 'c
iframe.select(:id => 'col0').wait_until(&:present?)
从这个更大的片段
iframe = @b.iframe(:title => /Mass Delete/)
iframe.wait_until(&:present?)
if iframe.present?
iframe.link(:visible_text => /Mass Delete #{type}/).click
iframe.select(:id => 'col0').wait_until(&:present?)
iframe.option(:text => /Owner Alias/).select
iframe.option(:text => 'equals').select
iframe.text_field(:id => "fval0").set user
iframe.button(:title => "Search").click
else
raise "Unable to locate the Salesforce Iframe"
end
以下是html页面:
我尝试使用不同的定位器与该元素交互,但没有效果 这将在Watir的下一版本中解决-确切发布日期待定。在短期内,您有几个选项可以隐藏警告 记录到文件 我建议将Selenium日志发送到一个文件。这使它保持分离,如果您碰巧需要它,它仍然可用
Selenium::WebDriver.logger.output = 'selenium.log'
忽略警告
通常您不需要Selenium警告,因为它们应该通过Watir更改得到解决。因此,您可以将Selenium logger更改为忽略警告:
Selenium::WebDriver.logger.level = :error
这可能是Watir和较新版本的Selenium的问题,而不是他们最初测试的对象。不过,弃用警告是一种警告;不是阻止测试的错误。或者这个警告也阻止了测试的运行?这就是我想知道的。我最近升级到了最新的stable watir和最新的stable selenium。正确的是,这只是一个警告,不会停止测试的运行。这让我很恼火:对不起,我们一直在努力推出新的Watir版本来解决这个问题。我们正在研究。哦,这是个好消息。是否有可用的bug报告,我可以跟踪以了解何时修复此问题?修复已签入()。我们只需要找出一些测试开始失败的原因(可能是驱动程序问题,而不是Watir代码)。如果你喜欢冒险,你可以直接使用源代码运行。非常感谢你的快速回答!我相信如果你成为瓦蒂尔团队的领导者,一切都会顺利进行。你随时都有空!我在我的项目中包含了这一行,但在我的项目目录中找不到该文件。该文件将在何处创建?@Rajagopalan,我希望它位于工作目录的根目录中。请注意,Selenium记录器主要是转发到。与标准记录器一样,您还可以为文件提供路径,这可能有助于将文件放置到正确的位置。不管怎么说,它并没有把WATIR警告写入那个文件,所以对我来说没用。