2016-10-14 5 views
0

Ich habe eine Webseite xyz.com, wenn ich mich zum ersten Mal auf der Webseite anmelde, bekomme ich eine Seite mit einem Schließen-Button. Wenn der Benutzer nun auf die Schließen-Schaltfläche auf der Seite klickt, verschwindet die Seite und wenn sich der Benutzer das nächste Mal anmeldet, wird er diese erste Zeitseite nicht sehen.Selenium-Handling Klicken Sie auf eine Seite der Webapplikation

In meinem Selen-Java-Code habe ich Xpath-Locator verwendet, um die Schaltfläche zum Schließen zu identifizieren und darauf zu klicken, wenn sich der Benutzer zum ersten Mal anmeldet.

Nun, in meinem Code, welche Bedingung muss ich setzen, die & identifizieren, klicken Sie auf den Schließen-Button dieser Seite, wenn es die Seite erhält, sonst wird es den Schritt überspringen und mit den fortlaufenden Schritten auf der Webseite fortfahren .

+0

Welchen Fehler erhalten Sie zum zweiten Mal? – khakishoiab

+0

Sie könnten warten, dass dieses bestimmte Element für einige Momente mit expliziter Wartestatus erscheint. Wenn die gewünschte Seite/das gewünschte Element angezeigt wird, schließen Sie sie und fahren Sie mit dem nächsten Schritt fort. –

+0

Hat die Schaltfläche einen eindeutigen Namen? Versuchen Sie in diesem Fall, die Seitenquelle zu überprüfen und festzustellen, ob das Element vorhanden ist. Dies könnte folgendermaßen aussehen: string PageSource = Driver.PageSource; if (PageSource.Contains (expect_text)) {Driver.FindElement (By .....). Klicken Sie auf()} – Anand

Antwort

0

Es gibt einige Möglichkeiten zu überprüfen, ob das Element auf der Seite angezeigt wird oder nicht.

1.

try { 
    webDriver.findElement(Locator locator).click(); 
catch (NoSuchElementException e) { 
    // move on 
} 

2.

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds); 
try { 
    WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(Locator locator); 
    element.click(); 
catch (TimeoutException e) { 
    // move on 
} 

3.

List<WebElement> elements = webDriver.findElements(Locator locator); 
if (!elements.isEmpty()) { 
    elements.get(0).click(); 
} else { 
    // move on 
    // maybe you don't need this else block 
} 

Wie Sie die ersten beiden möglichen Implementierungen werfen einen ungeprüften Ausnahme sehen können. Wenn Sie diese Ausnahmen nicht möchten, verwenden Sie die dritte. Ich denke, es ist eine gute Übung, die dritte Implementierung für normales Verhalten zu verwenden, wenn Sie nur überprüfen möchten, ob das Element vorhanden ist und Sie wissen, dass es in Ordnung ist.

Verwandte Themen