建议使用:class定位器来定位具有字符串值的多个类,从而警告Watir折旧。使用数组代替
我在运行这一行时得到了这个错误。
browser.button(:class => '_t38eb _ov9ai').click
我认为这是一个类,而不是多个类,我尝试了这一点,在战争中提到过。
browser.button(:class => ['_t38eb','_ov9ai']).click
但是页面被冻结,然后终止我想要的网页,我想在这里使用Instagram,在填写用户名和密码字段之后,尝试登录这个页面
如果我写这个,发色驱动器就会终止
browser.button(:class == '_t38eb _ov9ai').click
发布于 2018-04-06 07:39:36
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()
方法需要哈希对象,而不是在编写:class == '_t38eb _ov9ai'
时传递的TrueClass
或FalseClass
对象
如果要传递数组,最好使用#拆分:
browser.button(:class => '_t38eb _ov9ai'.split).click
发布于 2018-04-06 07:09:11
FYI:Watir
是开源的。
这条线是弃用警告的来源。
这种反对的原因是使用contains(this) and contains(that)
构建更多的惯用xpath。
我不知道为什么会结冰,但我确信完全可以安全地忽略这个警告。
https://stackoverflow.com/questions/49687117
复制相似问题