【问题标题】:Watir 4.0.2 Click crashes the browserWatir 4.0.2 Click 浏览器崩溃
【发布时间】:2021-01-15 08:07:58
【问题描述】:

以下代码导致了一些问题:

b = Watir::Browser.new

options =  b.select.options

options.each do |opt|
  s =  opt.text
  i = s.length - 1
  if s[i-1] == '(' then
    puts s
    b.select().select_value(s)
    b.text_field(:id => 'nombre', :name => 'nombre').value = '0'
    b.input(:class => 'bouton-ajouter').click
  end
end

当点击被执行时,它会停止执行 each 而只是崩溃。 为什么会这样?

【问题讨论】:

  • 有什么理由必须使用已经快 8 年的 v4.0.2 了吗?从那时起已经有各种修复,所以它可能已经解决了。
  • 是的,这是他们在我工作的公司使用的,他们不想升级:(
  • 那很不幸,希望你能改变他们的想法。脚本运行时是否有异常?您使用的是什么浏览器和版本?

标签: ruby watir


【解决方案1】:

我不知道你想做什么,但我已经稍微修正了你的程序,试试这个

require 'watir'

b = Watir::Browser.new

b.select_list.options.each { |opt|
  s = opt.text
  if s.chars.last == '('
    puts s
    b.select_list.option(text: s).select
    b.text_field(:id => 'nombre', :name => 'nombre').set '0'
    b.input(:class => 'bouton-ajouter').click
  end
}

【讨论】:

  • 我真的不想打破 for each ,我想迭代所有选项,如果它符合我的条件,填写一些值并按下按钮,通常它只是刷新页面,所以我可以去进入下一个选项
  • 哦,好吧。我删除了中断,但正如贾斯汀指出的那样,请尝试移至新版本。
【解决方案2】:

谢谢你们的帮助,我想我只是想出了怎么做,我将重新加载我的浏览器返回我的选择更改另一个选项并在其上创建一段时间,直到没有符合我的条件的选项,是我认为最简单的方法(如果我无法升级)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 2014-03-09
    • 1970-01-01
    相关资源
    最近更新 更多