2017-06-13 6 views
0

Ich verwende derzeit ein Seitenobjekt, um die PayPal-Anmeldeseite (https://www.sandbox.paypal.com) für Automatisierungszwecke darzustellen und egal, was ich tue, kann ich nicht auf den Login-Button klicken Die Seite.
Hier ist, was die Seite wie folgt aussieht: Sanbox PayPal Login Page Hier meine aktuelle Seite Objektdarstellung der Seite PayPal Login ist:Selen: Element auf PayPal-Login kann nicht gefunden werden Seite

public class PayPalLoginPage extends DesktopPage { 
    private static final Logger LOG = LoggerFactory.getLogger(PayPalLoginPage.class); 

    @FindBy(id = "email") 
    private WebElement emailInput; 

    @FindBy(id = "password") 
    private WebElement passwordInput; 

    @FindBy(id = "btnLogin") 
    private WebElement loginButton; 

    public PayPalLoginPage(BuildWebDriver driver, Wait<WebDriver> wait) { 
     super(driver, wait); 
    } 

    public void setEmail(String email) { 
     LOG.debug("Setting email: " + email); 
     setTextWithJavascript(emailInput, email); 
    } 

    public void setPassword(String password) { 
     LOG.debug("Setting password: " + password); 
     setTextWithJavascript(passwordInput, password); 
    } 

    public PayPalPaymentsPage clickLoginButton() { 
     LOG.debug("Clicking 'Log In' Button."); 
     clickWithJavascript(loginButton); 

     return new PayPalPaymentsPage(driver, wait); 
    } 
} 

Egal, was ich tun scheinen kann ich nicht mit den Eingabefeldern zur Interaktion für E-Mail/Passwort und die Schaltfläche Anmelden. Erste Fehler wie: no such element: Unable to locate element: {"method":"id","selector":"btnLogin"}

Ich habe versucht, den besseren Weg, mit Hilfe der Eingabefelder der Einstellung mit E-Mail/Passwort über webElement.sendKeys(String keys) aber das führt zu einem Fehler wie zum Beispiel: Stack Trace org.openqa.selenium.ElementNotVisibleException: element not visible. Der Versuch, auf die Sichtbarkeit des Elements zu warten, überschreitet die Zeit. Javascript scheint das einzige (und letzte Mittel) in der Interaktion mit der Seite zu sein, aber selbst das JavaScript schlägt fehl.

Wer weiß, was ich falsch mache? Vielen Dank.

+0

Warum verwenden Sie Javascript klicken? Einfacher Klick funktioniert gut – Amit

+0

Siehe diese Antwort https://stackoverflow.com/questions/42732688/cant-sends-keys-to-directed-paypal-login-page/42732853#42732853 – NarendraR

+0

@Tuks danke, das war es. Bin dankbar! – jaredgilmore

Antwort

0

Das Element, mit dem Sie interagieren möchten, befindet sich in einem Iframe, also in einem anderen Dokument. Sie müssen einen Weg finden, Selenium innerhalb eines Iframes auszuwählen.

+0

Sie können die Switch-to-Frame-Methode verwenden, wenn sich Elemente innerhalb von iframe befinden. – Murthi

+0

Die Paypal-Checkout-Seite befindet sich nicht in einem Iframe, sie ist eine eigene Seite. – jaredgilmore

+0

Ja. Der Login-Bereich der Seite befindet sich jedoch in einem Iframe. – bluepnume

Verwandte Themen