Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Watir警告-Selenium::WebDriver::Error::ObsoleteElementError_Ruby_Selenium Webdriver_Watir - Fatal编程技术网

Ruby Watir警告-Selenium::WebDriver::Error::ObsoleteElementError

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

嘿,大家好,我在运行我的watir测试自动化代码时收到了一个警告,尽管它可以工作,但我想解决它

警告:2020-02-12 08:35:47警告硒[弃用] Selenium::WebDriver::Error::ObsoleteElementError已被弃用。使用 Selenium::WebDriver::Error::StaleElementReferenceError(确保 驱动程序支持W3C WebDriver规范)

有问题的代码行:

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警告写入那个文件,所以对我来说没用。