2017-11-28 7 views
0

シングルサインオン機能をテストしようとしています。私はクロムセッションを開いてウェブページにログオンした。その後、同じブラウザウィンドウで新しいタブを開き、以前に入力したURLの別の拡張子を開いて、ユーザーセッションを保持していることを確認します。NUnitテストフレームワークでSelenium C#を使用して新しいChromeタブでURLを開く方法

これは私が試したことです(私はまだこれを学んでいます、まだ....すべてのヘルプ/提案に感謝します)

using OpenQA.Selenium.Chrome; 
using NUnit.Framework; 
using OpenQA.Selenium.Support.UI; 
using System.Collections.Generic; 
using System.Web; 
using System.Threading.Tasks; 

namespace Test 
{ 
[Binding] 
public class XXX 
{ 
    IWebDriver driver = new ChromeDriver(); 


    public void LoginPage() 
    { 
     driver.Navigate().GoToUrl("http://www.abcd.com/"); 
    } 


    public void LoggedIn() 
    { 
     //Entering username & password on Platform login page 
     driver.FindElement(By.Id("username")).SendKeys("abcd"); 
     driver.FindElement(By.Id("password")).SendKeys("XXXX"); 

     var loginBtn = driver.FindElement(By.CssSelector("input[type='button']")); 
     loginBtn.Click(); 

    } 


    public void OpenANewBrowserTab() 
    { 
     driver.SwitchTo().ParentFrame(); 


driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t"); 
     driver.Navigate().GoToUrl("http://abcd.com/ux"); 

    } 

私は、エラーの下に取得しています - フォーカスの使用にこの文を取得するには

An exception of type 'OpenQA.Selenium.NoSuchElementException' occurred in 
WebDriver.dll but was not handled in user code 

Additional information: no such element: Unable to locate element: 
{"method":"css selector","selector":"body"} 

答えて

0

driver.SwitchTo().ActiveElement(); 

それはあなたのために動作しませんジャバスクリプト文のdocument.activeElement .IFのと同じ意味を持っています。最後の手段として、いつでもjavascriptを使用することができます。

IJavaScriptExecutor js = (IJavaScriptExecutor)driver; 
js.ExecuteScript("var win = window.open('https://www.bing.com', '_blank'); 
     win.focus();"); 
+0

それでも、新しいタブを開くことはできません。エラーが発生する - WebDriver.dllで 'OpenQA.Selenium.NoSuchElementException'タイプの例外が発生しましたが、ユーザーコードで処理されませんでした 追加情報:このような要素はありません:要素を見つけることができません{"メソッド" css selector "、" selector ":" body "} – SymboCoder

+0

要素を見つけることができません:これはロケータの問題です。再度見て、あなたのロケータを確認する必要があります。とにかく、私は答えを編集し、別の解決法を提供しました。 –

+0

あなたの提案されたソリューションは完全に機能します。感謝のヒープ@Manmohan_singh – SymboCoder

関連する問題