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