2017-02-21 2 views
0

Mein Test lief vor dem 20. Februar in Ordnung. Ab dem Morgen dieses Tages sehe ich zahlreiche Fehler in einer Konsole. Sie sehen aus wie:ExpectedConditions-Klasse löst zahlreiche Fehler aus, wenn Selentest ausgeführt wird

лют. 21, 2017 2:38:19 PM org.openqa.selenium.support.ui.ExpectedConditions findElement 
WARNING: WebDriverException thrown by findElement(By.xpath: //a[@href='/#/activities']//span) 
org.openqa.selenium.NoSuchElementException: Cannot locate an element using By.xpath: //a[@href='/#/activities']//span 
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html 
Build info: version: '3.1.0', revision: 'b94c902', time: '2017-02-16 12:21:31 -0800' 
System info: host: 'SALSALABS5', ip: '192.168.15.114', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111' 
Driver info: driver.version: unknown 
    at org.openqa.selenium.support.ui.ExpectedConditions.lambda$findElement$0(ExpectedConditions.java:896) 
    at java.util.Optional.orElseThrow(Optional.java:290) 
    at org.openqa.selenium.support.ui.ExpectedConditions.findElement(ExpectedConditions.java:895) 
    at org.openqa.selenium.support.ui.ExpectedConditions.access$000(ExpectedConditions.java:41) 
    at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:181) 
    at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:178) 
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:234) 
    at com.vitalii.vitaliiFramework2.helpers.Waiters.fluentWaitIgnoringNoSuchElementExceptionAndElementNotVisibleException(Waiters.java:85) 
    at com.vitalii.vitaliiFramework2.pages.DashboardPage.goToActivitiesPage(DashboardPage.java:20) 
    at com.vitalii.vitaliiFramework2.tests.LoginPageTestsWD.doSuccessfulLoginTest(LoginPageTestsWD.java:19) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 

Offensichtlich ist dies wegen der ExpectedConditions-Klasse.

Das Projekt wurde erfolgreich ausgeführt und meine IDE zeigt in keiner Klasse Fehler an. Das Problem wird nur während der Laufzeit der Tests beobachtet und führt immer dazu, dass der Test irgendwann fehlschlägt.

Ich habe Browser oder meine pom.xml nicht aktualisiert. Es war in Ordnung vor dem Wochenende und scheitert jetzt.

Browser - FF 47,0 Selen - 3.1.0

Beispiel meines Codes, die ExpectedConditions Klasse verwendet wird:

public void fluentWaitIgnoringNoSuchElementExceptionAndElementNotVisibleException(final String locator){ 
     long waitingTime = 30; 
     long pollingInterval = 500; 
     Wait<WebDriver> wait = new FluentWait<WebDriver>(driver) 
       .withTimeout(waitingTime, TimeUnit.SECONDS) 
       .pollingEvery(pollingInterval, TimeUnit.MILLISECONDS) 
       .ignoring(NoSuchElementException.class) 
       .ignoring(ElementNotVisibleException.class) 
       .withMessage("Fluent wait of " + waitingTime + " seconds with " + pollingInterval + " milliseconds polling interval was unable to locate element with locator " + locator); 
     wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(locator))); 
    } 
+0

Können Sie nach einem Beispiel für die 'ExpectedConditions' in Ihrem Code verwendet? – Guy

+0

@Guy Ich habe der Beschreibung einen Code hinzugefügt. Danke –

Antwort

0

Congratulation! Du hast gerade einen Fehler entdeckt! ;)

Ich denke, es ist nichts falsch mit ExpectedConditions, aber wahrscheinlicher gibt es einige Änderungen im HTML der Seite.

Ich würde den Testfall manuell auf FF überprüfen, um zu sehen, was sich geändert hat.

+0

seine 100% nicht über die Anwendung. Ich verwende FluentWaits in meinem Test und Tests laufen bis zu einem gewissen Punkt. In der Konsole werden die oben genannten Fehler während der Laufzeit kontinuierlich (nur jede Sekunde) ausgelöst. –

0

Einfache Lösung dafür war die Verringerung der Selen-Version von 3.1.0 auf 3.0.1.

Verwandte Themen