0

警告 Watir [Depreciation] 使用 :class 定位器来定位具有字符串值的多个类已被弃用。改用数组

运行此行时出现此错误

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

我认为这是一个类而不是多个类我在交战中提到过这个

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

但页面冻结然后终止我试图圣甲虫的网络是Instagram在这里试图在填写用户名和密码字段后登录页面

如果我写这个chromedriver终止

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

2 回答 2

1

仅供参考:Watir是开源的。

此行是弃用警告的来源。

这种弃用的原因是使用contains(this) and contains(that).

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

于 2018-04-06T07:09:11.100 回答
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()方法需要 Hash Object 而不是您在编写时传递的对象TrueClass或对象FalseClass:class == '_t38eb _ov9ai'

如果你想传递一个数组,你最好使用#split:

browser.button(:class => '_t38eb _ov9ai'.split).click
于 2018-04-06T07:39:36.130 回答