2017-03-09 72 views
0

我試圖讓我的Selenium測試貝寶測試細節,以自動化測試貝寶硒無法進入貝寶沙盒詳細

我可以瀏覽到Sandbox.Paypal頁面,但一旦出現,我不能讓Selenium自動運行電子郵件和密碼輸入並點擊登錄按鈕。我正在用Visual Studio編寫C#。

我給這一步目前的代碼是

    driver.Instance.SwitchTo().Frame("injectedUl"); 

        By AtPaypal = By.CssSelector("#loginSection > div.pr.row-fluid > xo-title > h1"); 
        new WebDriverWait(driver.Instance, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementIsVisible(AtPaypal)); 

        var email = driver.Instance.FindElement(By.Name("login_email")); 
        email.SendKeys(Keys.Control + "a"); 
        email.SendKeys("xxxxxxxxxx"); 

        var Password = driver.Instance.FindElement(By.Name("login_password")); 
        Password.SendKeys(Keys.Control + "a"); 
        Password.SendKeys("xxxxxxxxxx"); 

        var Login = driver.Instance.FindElement(By.Id("btnLogin")); 
        Login.Click(); 

        By Paypal = By.Id("confirmButtonTop"); 
        new WebDriverWait(driver.Instance, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementIsVisible(Paypal)); 

        var ContinueBtn = driver.Instance.FindElement(By.Id("confirmButtonTop")); 

        ContinueBtn.Click(); 

但是這是行不通的,任何幫助,不勝感激。

問候

理查德

+0

是你能找到的元素密碼字段和電子郵件領域呢? –

+0

由於我們沒有看到實際的HTML,所以突出的是您切換到了iframe。這實際上是在一個iframe?如果是這樣,是否注入了iframe的實際名稱?當您無法與任何對象進行交互時,它要麼是與不正確的框架進行交互,要麼不需要框架。 – Dazed

+0

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-54365007M8453270M#/checkout/login這是PayPal沙箱的網址,閱讀其他人如何解決這個問題問題在過去導致Iframe代碼,但是這不適合我。任何幫助非常感謝 –

回答

0

嘿理查德我得到了這個工作。

如果您未在字段中輸入內容,則說明您無法正確訪問iframe。如果你通過調試運行它,它是否工作?只是想知道這是否是一個時間問題。我也會在名稱上使用ID。

頁面對象我只是使用輸入ID字段。

創建一個switchTo以轉到iframe。

 public static void SwitchToIframe(string frameName) 
    { 
     _webDriver.SwitchTo().Frame(frameName); 
    } 

件一起...

Browser.Goto("https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-54365007M8453270M#/checkout/login"); 
     Browser.SwitchToIframe("injectedUl"); 

    var email = driver.FindElement(By.ID("email")); 
       email.SendKeys("[email protected]"); 

       var Password = driver.FindElement(By.ID("password")); 
       Password.SendKeys("xxxxxxxxxx"); 

       var Login = driver.FindElement(By.Id("btnLogin")); 
       Login.Click(); 
+0

嗨,感謝設法讓我自己在星期五晚上使用類似的方法工作:)但現在有一個答案,現在任何人都有同樣的問題:)。 –

0

您可以嘗試發送密碼字段中,而不是點擊登錄按鈕的Enter鍵。

+0

嗨馬特,我無法通過登錄和密碼到領域之前甚至登錄按鈕。 –