簡體   English   中英

Selenium IDE:在新選項卡中打開並將焦點切換到新選項卡不起作用

[英]Selenium IDE:Opening in new tab and shift focus to new tab not working

我在selenium ide中陷入了一個問題

場景是這樣的

Login-----

go to dashboard page---------

mouse over any menu on the top navigational bar----

on mouseover sub menu will appear as drop down--

now click any link from the drop down --

after clicking link will open in new tab

現在,從那時起,我們必須將重點轉移到新選項卡上,因為其余的測試將在新選項卡上完成。

我寫的代碼如下

     <tr>
    <td>open</td>
    <td>/magma/dev/</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>name=user_id</td>
    <td>abcd</td>
</tr>
<tr>
    <td>type</td>
    <td>name=pass</td>
    <td>1234</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>id=btnLogin</td>
    <td></td>
</tr>
<tr>
    <td>verifyTextPresent</td>
    <td>Costing List</td>
    <td></td>
</tr>
<tr>
    <td>verifyTextPresent</td>
    <td>Fuel</td>
    <td></td>
</tr>
<tr>
    <td>mouseOver</td>
    <td>//div[@id='smoothmenu1']/ul/li[3]</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>link=Fuel Cost</td>
    <td></td>
</tr>
<tr>
    <td>selectWindow</td>
    <td>http://10.0.1.101/magma/dev/fuelcost/</td>
    <td></td>
</tr>
<tr>
    <td>verifyTextPresent</td>
    <td>Manage Fuel Cost</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>link=Logout</td>
    <td></td>
</tr>

此代碼正常工作,直到點擊下拉列表中的子菜單后,它不起作用,並在日志中顯示錯誤

因此,當我試圖運行該測試用例時,它顯示錯誤

[warn] Link的目標是'_blank',Selenium不支持! 將目標隨機化為:selenium_blank84419

任何人都可以幫我正確編寫代碼

以下代碼適用於我:

<tr>
    <td>storeEval</td>
    <td>selenium.getAllWindowNames()[1]</td>
    <td>windowName</td>
</tr>
<tr>
    <td>getEval</td>
    <td>this.doEcho("array length: "+selenium.getAllWindowNames().length);this.doEcho("Available window names: "+selenium.getAllWindowNames());this.doEcho("Selecting window: "+storedVars['windowName']);</td>
    <td></td>
</tr>
<tr>
    <td>selectWindow</td>
    <td>${windowName}</td>
    <td></td>
</tr>

我希望它能幫助那些面臨類似問題的人

使用selectPopUp ,但不是storeEvalselectWindow ,它們都太復雜了。

selectPopUp:

  • 參數:windowID - 彈出窗口的標識符,可以采用許多不同的含義

  • 簡化選擇彈出窗口的過程(並不提供超出selectWindow()已提供的功能)。

    • 如果未指定windowID或指定為“null”,則選擇第一個非頂部窗口。 頂部窗口是selectWindow()選擇的窗口,不提供windowID。 當多個彈出窗口正在播放時,不應使用此選項。
    • 否則,將按順序將windowID視為以下順序查找窗口:1)窗口的“名稱”,如window.open()所指定; 2)一個javascript變量,它是對窗口的引用; 3)窗口的標題。 這與selectWindow執行的順序查找相同。

下面的代碼(selenium腳本,我從selenium IDE復制)表示以下代碼:

1.點擊“編輯”鏈接

2.等待2秒鍾(等待新窗口打開)

3.專注於新窗口

<tr>
    <td>click</td>
    <td>link=edit</td>
    <td></td>
</tr>
<tr>
    <td>pause</td>
    <td>2000</td>
    <td></td>
</tr>
<tr>
    <td>selectPopUp</td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td>selectWindow</td>
    <td>http://10.0.1.101/magma/dev/fuelcost/</td>
    <td></td>
</tr>

window IDwindow titlewindow name替換<td>http://10.0.1.101/magma/dev/fuelcost/</td>

嘗試選擇selectWindow()只需提供窗口標題名稱withing()。 對於Ex:Window Title是Testing,然后命令:selectWindow title:Testing

要了解新打開的窗口的標題,請按照以下步驟操作:轉到新窗口右鍵單擊 - >查看頁面源按ctrl + F. 輸入標題和serch。 您將獲得新窗口的標題

我希望這可以幫助那里的人! 它對我很有用。 您仍然會在日志中收到警告,但測試工作正常。

Selenium IDE解決_blank錯誤

單擊新選項卡事件后,請添加waitForPopUp和selectPopUp事件。 它對我有用。

我使用以下內容,它適用於我,希望它有所幫助! :)

storeEval | this.browserbot.findElement('link=link name').href |    myUrl | 
open | ${myUrl}

我用storeAttribute incombination與open

鏈接: http//www.seleniumwiki.com/software-testing/how-to-solve-the-link-has-target-_blank-which-is-not-supported-in-selenium/

我這樣使用它:

在此輸入圖像描述

作為替代方案,可以在單擊之前從鏈接中刪除目標屬性。 以下是從當前頁面上的所有鏈接中刪除所有目標屬性的代碼:

<tr>
    <td>runScript</td>
    <td>Array.from(document.links).forEach(function(link){link.removeAttribute('target')})</td>
    <td></td>
</tr>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM