2016-09-08 46 views
7

我有這個名字結構的彈出窗口:如何在Selenium IDE中的waitForPopUp命令中執行正則表達式?

static_dynamic_static

動態部分的每個我登錄,這樣我的測試情況下,每次失敗都會改變。我想到了用正則表達式這樣解決問題:

命令: waitForPopUp

目標:正則表達式:靜態_ + _靜

但這不起作用。我做錯了什麼?這是甚至工作。如果沒有,是否有另一種方法來解決這個問題?

回答

1

從我的經驗,你不需要它申報爲目標領域內的正則表達式,你應該能夠有目標爲:

​​

而且應該這樣做

+0

這並不可悲。不是用於waitForPopUp命令而不是用於thr selectWindow命令:( –

0

如果你有隻有一個彈出窗口,你可以使用null作爲目標和測試會第一時間彈出:

waitForPopup | null 

另一種選擇是讓有活力的部分之前彈出窗口。動態部分很可能從頁面中檢索。如果是這樣,您可以在使用storeEval,而且比使用像得到:

waitForPopup | javascript{'static'+storedVars['dynamic']+'static'} 

如果您不能存儲的動態部分,請提供您的頁面的HTML或僅在動態部分中提到的部分。

我看到理論上可以獲得所有窗口的名稱,而不是在循環中使用模式來獲取窗口的名稱。

另外(理論上)可以擴展默認的waitForPopup函數。

但第二種方式,特別是第一種便宜得多。

0

來處理,這可能是運行一段JavaScript代碼來處理這種情況的最好辦法:

<tr> 
    <td>storeEval</td> 
    <td>var myRe = new RegExp(&quot;^prefix.+&quot;, &quot;g&quot;); var mywin; windows=selenium.getAllWindowNames();for (i = 0; i &lt; windows.length; i++) { if(myRe.test(windows[i])) { mywin=windows[i]}&nbsp;&nbsp;};&nbsp;&nbsp;mywin;</td> 
    <td>x</td> 
</tr> 
<tr> 
    <td>selectWindow</td> 
    <td>name=${myWindow}</td> 
    <td></td> 
</tr> 

JavaScript是不是完全功能(沒有空檢查),但應該幫助你在正確的軌道上。