2016-09-14 2 views
0

Wie verwende ich den Winkelmesser, um zu prüfen, ob ein Element sichtbar ist, ohne zu warten? Ich bin von Java + WebDriver Hintergrund und neu zu Protractor. In Java habe ich die folgende Lösung verwendet. Ich suche nach einer ähnlichen Funktionalität.Wie verwende ich den Winkelmesser/WebDriverJS, um zu prüfen, ob ein Element ohne Warten angezeigt wird?

Weitere Informationen: Derzeit, wenn ich isDisplayed() verwende, wartet WebDriver, bis das Element sichtbar ist (wenn es nicht bereits angezeigt wird). Ich möchte den Sichtbarkeitsstatus erhalten, ohne zu warten.

protected void turnOffImplicitWaits() { 

    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); 

} 



protected void turnOnImplicitWaits() { 

    driver.manage().timeouts().implicitlyWait(StartupConstants.TIMEOUT, TimeUnit.SECONDS); 

} 



protected boolean isElementHiddenNow(By by) { 

    turnOffImplicitWaits(); 

    boolean result = ExpectedConditions.invisibilityOfElementLocated(by).apply(driver); 

    turnOnImplicitWaits(); 

    return result; 

} 
+0

Warum wollen Sie, dass - was für Anwendungsfall haben Sie abdecken wollen? Ist es etwas wie: Sie haben ein Element, das zunächst unsichtbar ist, aber dann sichtbar wird und Sie es als erstes unsichtbar machen wollen ..? – alecxe

Antwort

0

Wenn Sie eine Sache, keinen Standard wartet wollen, während für die Sichtbarkeit des Elements Überprüfung tun, das ist nur führt eine Operation wie click() auf Zielelement und fügen Sie dann() Funktion mit zwei Funktionen als Parameter - eine für Erfolg und andere für Fehler. Sie folgen den Code unten:

var targetElement=element(locator); 
targetElement.click() 
        .then(function(toBeCalledWhenSuccess) { // fulfillment },  
         function(reasonForRejection) { // rejection } 
         ); 

unten Code hinzufügen in Conf.js

jasmineNodeOpts: { 
     // Default time to wait in ms before a test fails. 
     defaultTimeoutInterval: 0, 
    } 
+0

aber wenn das Element nicht sichtbar ist, wird Webdriver warten, bis es sichtbar ist, oder? Ich möchte den Sichtbarkeitsstatus erhalten, ohne zu warten. Kannst du bitte bestätigen? –

+0

Ich denke nicht. Und warum wollen Sie diese spezifische Bedingung yaar –

+0

Oder versuchen, eine Aktion auf Element und Code verwenden - targetElement.click(). Dann (Funktion (Wert) { // Erfüllung }, Funktion (reasonForRejection) { // Ablehnung }); –

Verwandte Themen