2017-03-09 3 views
0

Ich versuche, um meinen Selenium Test Paypal Test-Details einzugeben, um Paypal Testing zu automatisierenSelen können nicht Paypal Sandbox-Details

ich zur Sandbox.Paypal Seite navigieren kann, aber einmal dort kann ich nicht Selen bekommen zu automatisieren E-Mail und Passwort eingeben und auf den Login Button klicken. Ich schreibe in C# auf Visual Studio.

Mein Code zur Zeit für diesen Schritt ist

    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(); 

Jedoch ist dies nicht funktioniert, jede Hilfe sehr dankbar.

Grüße

Richard

+0

sind Sie in der Lage auf alle Element Passwort-Feld und E-Mail-Feld zu finden? –

+0

Da wir nicht die tatsächliche HTML sehen, ist die Sache, die herausragt, dass Sie zu einem iframe gewechselt haben. Ist das tatsächlich in einem Iframe? Wenn ja, ist "injectedUl" der tatsächliche Name des iframe? Wenn Sie mit keinen Objekten interagieren können, interagieren Sie entweder mit dem falschen Frame oder der Frame wird nicht benötigt. – Dazed

+0

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-54365007M8453270M#/checkout/login Das ist die Webadresse der Paypal Sandbox, die darüber liest, wie andere Leute das Problem gelöst haben Problem in der Vergangenheit führte zum Iframe-Code, dies funktioniert jedoch nicht für mich. Jede Hilfe sehr geschätzt –

Antwort

0

Hey Richard Ich habe das zur Arbeit gebracht.

Wenn Sie die Felder nicht eingeben, gelangen Sie nicht korrekt zum iframe. Wenn Sie es durch Debug ausführen, funktioniert es? Ich frage mich nur, ob es ein Timing-Problem ist. Ich würde auch ID über Name verwenden.

Das Seitenobjekt Ich habe gerade die Eingabe-ID für das Feld verwendet.

Erstellen Sie ein switchTo, um zum iframe zu wechseln.

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

Stück zusammen ...

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

Hallo Dank geschafft, es funktioniert mir spät Freitag mit ähnlichen Methode :) aber es gibt eine Antwort hier für jeden, der das gleiche Problem hat :). –

0

Sie könnten versuchen, eine Enter-Taste im Passwort-Feld statt Klick auf den Login-Button senden.

+0

Hallo Matt, ich kann nicht die Anmeldung und das Passwort bis zu den Feldern überhaupt vor dem Anmelde-Taste übergeben. –

Verwandte Themen