2016-05-30 71 views
0

我創建了一個硒測試,以便在發佈的時刻在各個網站購買一雙鞋,我希望我的測試能夠刷新一遍又一遍,直到鞋子變得可用,這樣我就不應該讓電腦開始所有的測試。這個有可能?Selenium:如何在頁面可用時自動刷新

在此先感謝

這是我的代碼:

<tr> 
<td>open</td> 
<td> LINK SHOE</td> 
<td></td> 
</tr> 
<tr> 
<td>click</td> 
<td>css=div.opt-sel</td> 
<td></td> 
</tr> 
<tr> 
<td>click</td> 
<td>//div[@id='content']/div[3]/div[2]/div[2]/div/div[2]/div[2]/div/ul/li[6]/div/</td> 
<td></td> 
</tr> 
</tbody></table> 
</body> 
</html> 

回答

1

的想法是把類似的代碼使用方法:

// your first condition of opening a page of shoe 
while("add to chart is not available") { 
    driver.refresh(); //this would keep on refreshing unconditionally unless your item is found 
    wait(2000); // would suggest adding some wait() 
} 
// once add to chart is available, it would come out of the loop 
// execute further your 2nd and 3rd command 
+0

抱歉,但我有不明白的,我應該把碼。 特別是: 第一條命令打開鞋的頁面,其他兩條命令都有添加圖的任務並進行結帳。 (非常簡單)但如果鞋子不可用,那麼第二和第三指令自然不起作用。在這種情況下,我需要一遍又一遍地刷新頁面,當產品可用時,其他兩個命令將不得不自動購買。 在此先感謝 – Edoardo

+0

@Edoardo:回答修改 – nullpointer

+0

是這樣的嗎? \t​​開放 \t​​ \t​​ \t​​而 \t​​(;添加到圖表不可用;)driver.refresh() \t​​ \t​​等待 \t​​2000 \t​​ \t​​點擊 \t​​CSS = div.opt-SEL \t​​ \t​​點擊 \t​​// DIV [@ ID = '內容']/DIV [3]/DIV [2]/DIV [2]/DIV/DIV [2] /格[ 2]/DIV/UL /利[6]/DIV/ \t​​ \t​​ENDWHILE \t​​ \t​​ – Edoardo

1

這是可能的。您可以通過使用storeElementPresent命令來檢測頁面元素是否已經存在。它返回布爾值(真/假),可用於gotoIf命令的條件表達式中。見下面的例子...


命令:storeElementPresent

目標:<locator-for-shoes>

值:shoes


命令:gotoIf

目標:${shoes}==false

值:RefreshPage


命令:label

目標:RefreshPage

值:


命令:refreshAndWait

目標:

值:


命令:gotoIf

目標:${shoes}==false

值:RefreshPage

+0

我可以得到相同的結果時,頁面按鈕可以點擊? – Edoardo

+0

不是。我提供的答案僅用於檢測元素是否存在。檢測按鈕是否啓用將是一個不同的故事。 –