2017-07-13 8 views
0

Ich habe versucht, eine Selen Aufgabe es auszuführen:Klicken Sie auf den Link mit Selen und WebDriver

In this page gibt es eine Taste, die ich darauf klicken und dann 10 Sekunden warten. Ich habe es wie folgt aus: Naviagation zu Seite:

base.driver.navigate().to("http://suvian.in/selenium/1.7button.html"); 

Klicken Sie auf die Schaltfläche:

//base.driver.findElement(By.xpath("/html/body/div[1]/div/div/div/div/h3[2]/a")); 
     base.driver.findElement(By.linkText("Click Me")); 

Dieser Schritt schlägt fehl

Warten Sie 10 Sekunden:

TimeUnit.SECONDS.sleep(waitTime); 

Questio ns:

1-es schlägt beim Klicken auf die Schaltfläche fehl. Obwohl, ich fragte, um den Link sowohl mit xpath, als auch text zu finden kann es nicht finden?

2-Ist meine Lösung korrekt, um die Aktivität des Webtreibers zu verzögern?

+0

was meinst du? –

Antwort

1
  1. Try Below-Code auf die Schaltfläche "Click Me" für das Klicken, versucht auf meinem lokalen: driver.findElement(By.xpath("//div[contains(@class,'intro-message')]")).findElement(By.partialLinkText("Click Me")).click();

    Erklärung für den obigen Code: Daumenregel aus dem übergeordneten Element des DOM zu gehen, ist zu versuchen . In dem obigen Beitrag ist Ihr übergeordnetes Element für die Schaltfläche div class = Intro-Nachricht. Sobald das übergeordnete Element gefunden wurde, finden Sie als Nächstes die untergeordneten Elemente. In Ihrem Fall war es die Schaltfläche mit dem Link "Click Me".

//base.driver.findElement(By.xpath("/html/body/div[1]/div/div/div/div/h3[2]/a ")); base.driver.findElement (By.linkText ("Klicken Sie auf mich"));

Auch die Art, wie Sie geschrieben haben, ist nicht korrekt. Dies wird fehlschlagen, falls mehr Elemente dazwischen eingefügt werden, wie zum Beispiel ein neues div oder eine neue Schaltfläche. Versuche dies zu vermeiden.

  1. Ja für das aktuelle Szenario, Ihre Art zu warten ist richtig. Aber für andere Anwendungsfälle ist es möglicherweise nicht richtig, dass Ihre Anwendung explizit wartet.
+0

Ihre Lösung funktioniert nicht –

+0

Ich versuchte auf meinem lokalen, driver.findElement (By.xpath ("// div [enthält (@ -Klasse, 'Intro-Nachricht')]")). FindElement (By.partialLinkText (" Klicken Sie auf ")). Click(); und es hat funktioniert. Welchen Browser verwendest du? –

+0

gelöst. danke, ich verpasse die 'click()' –

Verwandte Themen