我有這個名字結構的彈出窗口:如何在Selenium IDE中的waitForPopUp命令中執行正則表達式?
static_dynamic_static
動態部分的每個我登錄,這樣我的測試情況下,每次失敗都會改變。我想到了用正則表達式這樣解決問題:
命令: waitForPopUp
目標:正則表達式:靜態_ + _靜
但這不起作用。我做錯了什麼?這是甚至工作。如果沒有,是否有另一種方法來解決這個問題?
我有這個名字結構的彈出窗口:如何在Selenium IDE中的waitForPopUp命令中執行正則表達式?
static_dynamic_static
動態部分的每個我登錄,這樣我的測試情況下,每次失敗都會改變。我想到了用正則表達式這樣解決問題:
命令: waitForPopUp
目標:正則表達式:靜態_ + _靜
但這不起作用。我做錯了什麼?這是甚至工作。如果沒有,是否有另一種方法來解決這個問題?
從我的經驗,你不需要它申報爲目標領域內的正則表達式,你應該能夠有目標爲:
而且應該這樣做
如果你有隻有一個彈出窗口,你可以使用null作爲目標和測試會第一時間彈出:
waitForPopup | null
另一種選擇是讓有活力的部分之前彈出窗口。動態部分很可能從頁面中檢索。如果是這樣,您可以在使用storeEval,而且比使用像得到:
waitForPopup | javascript{'static'+storedVars['dynamic']+'static'}
如果您不能存儲的動態部分,請提供您的頁面的HTML或僅在動態部分中提到的部分。
我看到理論上可以獲得所有窗口的名稱,而不是在循環中使用模式來獲取窗口的名稱。
另外(理論上)可以擴展默認的waitForPopup函數。
但第二種方式,特別是第一種便宜得多。
來處理,這可能是運行一段JavaScript代碼來處理這種情況的最好辦法:
<tr>
<td>storeEval</td>
<td>var myRe = new RegExp("^prefix.+", "g"); var mywin; windows=selenium.getAllWindowNames();for (i = 0; i < windows.length; i++) { if(myRe.test(windows[i])) { mywin=windows[i]} }; mywin;</td>
<td>x</td>
</tr>
<tr>
<td>selectWindow</td>
<td>name=${myWindow}</td>
<td></td>
</tr>
JavaScript是不是完全功能(沒有空檢查),但應該幫助你在正確的軌道上。
這並不可悲。不是用於waitForPopUp命令而不是用於thr selectWindow命令:( –