我正在尝试将页面加载应用于完全正常的睡眠,但我想避免使用它并寻找替代方案。
我尝试过这些选项:
@browser.element(:class => 'oo-pricing').wait_until(:timeout => 30)
Watir::Wait @browser.span(:class => 'oo-blp-price').wait_until(:timeout => 30)
我的目标是等到跨度中的文本更新。
browser.goto('https://secure.bestprice.rankingsandreviews.com/nc/configurator/307715')
browser.element(:id => 's2id_select_style').click
browser.element(xpath: ".//*[@id='select2-drop']/div/input").send_keys('Convertible LT 1LT', :tab)
browser.element(id: 'edit_color').click
browser.span(text: 'Incentives').click
browser.element(text: "2017 GM Conquest Cash").parent.preceding_sibling.span.click
答案 0 :(得分:0)
您正在使用Chrome驱动程序,Chrome驱动程序会自动关闭浏览器。如果您使用过Firefox驱动程序,则不会出现此问题,问题的解决方案是,
添加此代码
require 'watir'
caps = Selenium::WebDriver::Remote::Capabilities.chrome(chrome_options: {detach: true})
browser = Watir::Browser.new :chrome, desired_capabilities: caps
然后编写代码
browser.element(:id => 's2id_select_style').click
browser.element(xpath: ".//*[@id='select2-drop']/div/input").send_keys('Convertible LT 1LT', :tab)
browser.element(id: 'edit_color').click
browser.span(text: 'Incentives').click
browser.element(text: "2017 GM Conquest Cash").parent.preceding_sibling.span.click
browser.span(text: 'Save & Update').click #Updated
现在,您的Chrome浏览器在程序结束后不会关闭。
答案 1 :(得分:0)
找到您想要的元素,例如:
@browser.element(:class => 'oo-pricing')
在其上调用wait_until_present方法:
@browser.element(:class => 'oo-pricing').wait_until_present