21

Selenium と Firefox を使用しています。

新しいタブで新しいページを開くページ (linkA など) にリンクがあります。linkA をクリックすると、新しいタブが表示されます。次に、新しいページとやり取りしたいと思います。

これが私のセレンスクリプトです:

  • リンクAをクリック
  • 一時停止 5000
  • selectWindow タイトル
  • linkB をクリックします (注: linkB は新しいページにあります)。

Selenium は新しいタブを識別できません。それは報告します:

[警告] リンクには、Selenium でサポートされていないターゲット '_blank' があります! ターゲットをランダム化: selenium_blank24003

表示されたタブと対話するように Selenium に指示する方法はありますか?

4

7 に答える 7

4

こんにちは、これを試してみてください..

Set<String> winSet = driver.getWindowHandles();
        List<String> winList = new ArrayList<String>(winSet);
        String newTab = winList.get(winList.size() - 1);
        System.out.println("winList: "+winList.size());
        //driver.close(); // close the original tab
        driver.switchTo().window(newTab);
于 2013-06-17T07:23:32.157 に答える
2

それは私のために働いた。

[info] Executing: |storeEval | this.browserbot.findElement('link=Pastanet').href | Link_PastaNet |
[info] Executing: |openWindow | ${Link_PastaNet} | MyWindows | 
于 2010-11-24T13:35:08.133 に答える
0

lericain59 は正しい方向に私を送ってくれましたが、私のバージョンのセレンの IDE (私は 1.0.6 を実行しています) で動作させるためにいくつかの変更を加える必要がありました。また、私の目的のために、別のウィンドウで開くことをそれほど確認する必要はなく、正しいウィンドウが開いていることだけを確認しました。

これが私のために働いたスクリプトです。

  • storeEval | this.browserbot.findElement('link=ここをクリック').href | myUrl |
  • 開く | ${myUrl} ||

this.page() は機能しませんでした。this.browserbot に置き換えられたようです。また、ページを直接開いたところです。手動で一時停止する必要がなく、手順も少なくて済みます。

于 2010-04-28T04:06:08.853 に答える
0

Selenium IDE で行った手順は次のとおりです。

  1. 問題のリンクを見つける
  2. リンクから属性「ターゲット」を削除します
  3. href の宛先を変数 (myUrl) にコピーします。
  4. リンクを変更する href->javascript:window.open(myUrl,'myWindow')
  5. リンクをクリック
  6. ウィンドウ「myWindow」を選択</li>

getEval | this.page().findElement('link=ここをクリック').removeAttribute('target')||

storeEval | this.page().findElement('link=ここをクリック').href | myUrl

getEval | this.page().findElement('link=ここをクリック').href=”javascript:window.open('${myUrl}','myWindow')” ||

クリック | リンク=ここをクリック ||

一時停止 | 1000 ||

selectWindow | 名前=myWindow ||

于 2010-04-16T10:29:33.537 に答える
0
Iterator<String> windowIterator = driver.getWindowHandles().iterator();while (windowIterator.hasNext()) {
String windowHandle = windowIterator.next();
driverwindow = driver.switchTo().window(windowHandle);
if (_driverwindow.getTitle().equals("Title of the window to switch")) {
}
}
于 2013-06-24T08:02:25.207 に答える