watir字符串值被删除Ruby

时间:2018-04-06 06:57:29

标签: ruby watir webscarab

  

使用:class locator警告Watir [Depreciation]来定位多个   不推荐使用具有字符串值的类。改为使用数组

运行此行时出现此错误

browser.button(:class => '_t38eb _ov9ai').click

我认为这是一个班级而不是多个班级,我在战争中提到过这个。

browser.button(:class => ['_t38eb','_ov9ai']).click

但页面冻结然后终止 网页我尝试使用金龟子是Instagram在这里尝试在填写用户名和密码字段后登录页面

如果我写这个chromedriver终止

browser.button(:class == '_t38eb _ov9ai').click

2 个答案:

答案 0 :(得分:1)

仅供参考:Watir是开源的。

This line是弃用警告的来源。

这种弃用的原因是使用contains(this) and contains(that)构建更具惯用性的xpath。

我不确定为什么会冻结,但我很肯定忽略警告是完全安全的。

答案 1 :(得分:0)

当您自动化时,Chrome驱动程序和Firefox驱动程序之间存在差异,您的浏览器正在关闭,因为Chrome驱动程序在执行代码后关闭了浏览器一次,但Firefox驱动程序未关闭浏览器。如果您想让Chrome浏览器保持打开状态,请使用此代码

require 'watir'
caps = Selenium::WebDriver::Remote::Capabilities.chrome(chrome_options: {detach: true})
b = Watir::Browser.new :chrome, desired_capabilities: caps

下面给出的代码不起作用

browser.button(:class == '_t38eb _ov9ai').click

那是因为button()方法需要哈希对象而不是您在撰写TrueClass时传递的FalseClass:class == '_t38eb _ov9ai'的对象

如果您想传递数组,最好使用#split:

browser.button(:class => '_t38eb _ov9ai'.split).click