2017-10-24 3 views
0

私は基本的にページのフッタのリンクをクリックするテストをしています。我々は彼らの3持っており、それらはすべて別の場所につながる:Seleniumの新しいタブをターゲットにする

  • Googleドキュメントのフォーム
  • トレーニングページ
  • コードは以下の権利の主張とクリックを作る

ライセンスページリンク:

if @link_selection.eql?('leave feedback') 
    @wait.until {@driver.find_element(css: => 'cell.feedback').click} 
    @wait.until {@driver.find_element(css: => 'a[href="https://docs.google.com/a/showmyhomework.co.uk/forms/d/1LP8BZ950TSXXDR1HuVz7yhv9Cp3h6scmQtNFqIRW_XI/viewform"').click} 
    puts "Leave feedback link clicked" 

リンクの場所ごとにモジュール化しました。 リンクをクリックすると、自然に新しいブラウザタブに開きます。その後、テストを拡張して開いたタブを表示し、そのページでアサーションを作成するようにしました。私はセレンの新しいタブとその方法をどのように扱うことができるかを質問したかったのです。

a。新しいタブが開かれていると主張します(そしてそれに切り替えます)
b。テストページが開かれたことを確認しているように、それから、(ページの見出しやタイトルを主張することができます。

答えて

0

C#で次のコードは、ルビーに変更すること自由に感じなさい。

// This gets the window handles of open available windows(also, tabs) 
var availableWindows= driver.WindowHandles; 

は、ページのタイトルに関して新しいタブに切り替えるには:あなたが探していることで、あなたが機能で遊んで、その後、あなたはそれに応じてアサート使用することができます

string Title= "whateveryourpagetitleis"; 
    foreach (string windowId in availableWindows) 
       { 
        string windowTitle = driver.SwitchTo().Window(windowId).Title; 
        if (windowTitle.ContainsIgnoreCase(title)) 
        { 
         driver.SwitchTo().Window(windowId); 
        } 
       } 

しかしWindowHandles

関連する問題