2013-06-12 54 views
0

我很難選擇使用Selenium IDE彈出的窗口。我試過硒IDE選擇窗口問題

selectWindow(title) 

selectPopup(title) 

,但他們似乎並不管用。一旦選擇窗口中,

verifyTitle(title) 

作品就好了,所以我就開始做一些測試,測試能夠匹配到背景畫面上的物體。所以我似乎沒有按照標題與窗口相匹配。我也嘗試使用不帶參數的selectWindow/selectPopup,但沒有任何改變。

重要的是要注意,窗口是通過點擊一個按鈕啓動的,它還會根據其ID並不可用於Selenium的窗口名稱,因此我們需要基於標題啓動,不是名稱,我無法使用openWindow或類似的,因爲url等是由底層系統生成的。我只需要一個一致的方法來選擇彈出窗口。

有誰知道我該如何解決這個問題?

回答

0

這可能會爲你工作

click    link=activate 
waitForPageToLoad 
selectWindow  Third party activation site 

或試試這個

[info] Executing: |storeEval | this.browserbot.findElement('link=Pastanet').href | Link_PastaNet | 
[info] Executing: |openWindow | ${Link_PastaNet} | MyWindows | 
0

有時給一個明確的窗口定位器類型的幫助。通過在titleWindow前加上標題=給selectWindow或selectPopup命令指定您要給出一個窗口標題,如下所示。

selectWindow title=my window title 
0

無解,但我有一個類似的問題 在我看來,有背景的窗戶有問題。如果您要選擇的窗口位於另一個窗口的後面,則無法選擇它 - 只有在窗口已在前面的情況下才可以使用

1

您面臨的問題是,在selenium IDE中存在一個只能識別的問題IT打開的窗口。您無法使用「selectWindow」選擇新窗口,因爲Selenium IDE沒有「打開」窗口。它在鏈接上「點擊」,網頁「打開」窗口。

解決方法是在指向@href的超鏈接元素上使用storeAttribute從鏈接中提取URL並將其作爲變量存儲。然後使用openWindow。因此,而不是:

<tr> 
    <td>click</td> 
    <td>//table[@id='dtgList']/tbody/tr[1]/td/a/u</td> 
    <td></td> 
</tr> 
<tr> 
    <td>pause</td> 
    <td>10000</td> 
    <td></td> 
</tr> 
<tr> 
    <td>selectWindow</td> 
    <td>Profile</td> 
    <td></td> 
</tr> 

使用這種戰術:

<tr> 
    <td>storeAttribute</td> 
    <td>//table[@id='dtgList']/tbody/tr[1]/td/[email protected]</td> 
    <td>Profile</td> 
</tr> 
<tr> 
    <td>echo</td> 
    <td>${Profile}</td> 
    <td></td> 
</tr> 
<tr> 
    <td>openWindow</td> 
    <td>${Profile}</td> 
    <td></td> 
</tr> 
<tr> 
    <td>pause</td> 
    <td>10000</td> 
    <td></td> 
</tr> 
<tr> 
    <td>selectWindow</td> 
    <td>Profile</td> 
    <td></td> 
</tr> 

希望有所幫助。

0

user2989297和Samit Badle是正確的,但我發現他們的答案非常模糊和令人困惑,直到我遇到另一篇文章,它幫助我把它放在一起。

訣竅是在openWindow調用期間將自己的名稱分配給要選擇的窗口。這是存儲變量的目的,儘管在上面的例子中並不清楚。我建議以下可能會更容易理解。

<tr> 
    <td>storeAttribute</td> 
    <td>//table[@id='dtgList']/tbody/tr[1]/td/[email protected]</td> 
    <td>varNewWindowName</td> 
</tr> 
<tr> 
    <td>echo</td> 
    <td>${varNewWindowName}</td> 
    <td></td> 
</tr> 
<tr> 
    <td>openWindow</td> 
    <td>${varNewWindowName}</td> 
    <td>Profile</td> - this is where we assign it a new name, 'Profile' 
</tr> 
<tr> 
    <td>pause</td> 
    <td>10000</td> 
    <td></td> 
</tr> 
<tr> 
    <td>selectWindow</td> 
    <td>Profile</td> - now we can select it, using the new name 
    <td></td> 
</tr> 

如果您使用的是Selenium IDE,則相應的命令是;

Command: storeAttribute 
    Target: //table[@id='dtgList']/tbody/tr[1]/td/[email protected] 
    Value: varNewWindow 

    Command: echo - I've read that the echo command is optional, but I used it 
    Target: ${varNewWindow} 
    Value: 

    Command: openWindow 
    Target: ${varNewWindow} 
    Value: Profile - again, this is where we assign the new name 

    Command: Pause 
    Target: 10000 
    Value: 

    Command: selectWindow 
    Target: Profile - and then use the new name 
    Value: 
0

最好的解決辦法是留出空白目標&把標題的值。

Command: selectPopUp 
Target: 
Value: Your popUp title 
0

我可以看到這個問題在Selenium IDE中很流行......現在,我有一個簡單的方法來解決這個問題。爲什麼你不創建一個新的測試用例?它會選擇新窗口或彈出窗口,只要你想