Ruby Selenium::WebDriver::Error::StaleElementReferenceError元素在缓存中不存在 这不是我的实际代码,但场景完全相同。 mysite.com是这样的:

Ruby Selenium::WebDriver::Error::StaleElementReferenceError元素在缓存中不存在 这不是我的实际代码,但场景完全相同。 mysite.com是这样的:,ruby,watir,watir-webdriver,Ruby,Watir,Watir Webdriver,问题:第1行和第2行成功运行。但系统在执行第3行时抛出错误。系统找不到id=id3且id=sbmt\U btn的对象。为了解决这个问题,我翻了很多页,但都没有。请帮忙。 我的ruby版本:ruby 1.9.3p362 提前感谢。请尝试when\u present命令: . . . b.frame(:name, "something1").text_field(:id, "id3").when_present.set "World" . . . 当您输入每个字段时,页面是否会发生变化(通过aja

问题:第1行和第2行成功运行。但系统在执行第3行时抛出错误。系统找不到id=id3且id=sbmt\U btn的对象。为了解决这个问题,我翻了很多页,但都没有。请帮忙。 我的ruby版本:ruby 1.9.3p362


提前感谢。

请尝试when\u present命令:

. . .
b.frame(:name, "something1").text_field(:id, "id3").when_present.set "World"
. . .

当您输入每个字段时,页面是否会发生变化(通过ajax或javascript)?贾斯汀刚才问的+1。搜索页面HTML和JS代码,查看是否有由onchange事件或类似事件触发的回发事件。它们的形式都相同。更改输入字段时不会触发此类事件。我也浏览了你的网站Justin Ko,但没有为我找到解决方案。我在示例页面上运行了你的示例脚本,没有得到任何异常。您的示例页面/脚本是否出现异常?如果没有,那么您正在测试的实际页面肯定有一些不同之处。您需要提供更多信息,以便我们重现问题-实际页面或说明问题的示例页面。@Dovinsth如果您愿意1)编辑您的问题,包括正在使用的插件或库的名称,甚至可能修改标题以包含它。2) 为问题添加一个答案,描述您如何解决问题,并接受答案。
require "watir-webdriver"
b = Watir::Browser.new :chrome
b.goto "mysite.com"
b.frame(:name, "something1").text_field(:id, "id1").set "45"     #line1
b.frame(:name, "something1").text_field(:id, "id2").set "Hello"  #line2
b.frame(:name, "something1").text_field(:id, "id3").set "World"  #line3
b.frame(:name, "something1").button(:id, "sbmt_btn").click       #line4
. . .
b.frame(:name, "something1").text_field(:id, "id3").when_present.set "World"
. . .