2
这不是我的实际代码,但情况完全相同。
mysite.com是这样的:
<iframe name:something1>
<form id:something2>
<ul>
<li>
<input class = "class a" id = "id1" name = "name1">
</li>
<li>
<input class = "class b" id = "id2" name = "name2">
</li>
<li>
<input class = "class c" id = "id3" name = "name3">
</li>
<li>
<input id = "sbmt_btn" type = "submit">
</li>
</ul>
</form>
</iframe>
的Watir脚本我用:
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
问题:一号线2号线和成功运行。但系统在执行line3时会报错。系统找不到id = id3和id = sbmt_btn的对象。我经历了很多页面来解决这个问题,但不能。请帮助。 我的红宝石版本:红宝石1.9.3p362Selenium :: WebDriver :: Error :: StaleElementReferenceError元素在缓存中不存在
在此先感谢。
是换页(通过AJAX或JavaScript)为您输入的每个字段? – 2013-04-09 13:24:00
Justin刚刚问了一下。搜索页面HTML和JS代码以查看是否有由onchange事件或类似事件触发的回发事件。 – 2013-04-09 16:32:10
他们都是在相同的形式。在更改输入字段时不会触发这样的事件。我也浏览了您的网站Justin Ko,但找不到解决方案。 – Dovinsth 2013-04-10 05:23:29