2016-11-01 12 views
5

Mam funkcję logowania, który używam do testu kątomierz, wygląda to tak:Jak mogę poczekać, aż element jest widoczny z Kątomierzem, gdy kątowy nie jest dostępny?

var config = require("../helpers/config.js"); 

var login = function() { 
    browser.driver.get(config.dsp.url); 
    browser.driver.findElement(by.name("userName")).sendKeys(config.dsp.user); 
    browser.driver.findElement(by.name("password")).sendKeys(config.dsp.password); 
    return browser.driver.findElement(by.name("submit")).click().then(function() { 
     return browser.driver.wait(function() { 
      return browser.driver.isElementPresent(browser.driver.findElement(by.className("sample-class-name"))); 
     }, 360000); 
    }); 
} 

module.exports = login; 

nie mogę używać żadnych specyficznych haków kątomierz ponieważ kątowy nie jest używany na tej stronie, więc Muszę korzystać z interfejsu API webdriver. Problem polega na tym, że nie mogę się zorientować, jak poczekać, aż element będzie widoczny za pomocą owiniętego obiektu Webdriver. Każda pomoc będzie doceniona.

+0

Błąd pojawia kiedy uruchomić ten test jest TypeError: „Nieprawidłowy Locator” na browser.driver.isElementPresent. –

+1

Jeśli nie ma Angulara, dlaczego po prostu nie wyłączysz synchronizacji z 'browser.ignoreSynchronization = true;'? –

+0

Dobre pytanie. Angular będzie obecny zaraz po zakończeniu logowania. Wystarczy, że użytkownik przejdzie poza nieokreśloną stronę logowania. –

Odpowiedz

5

Spróbuj z przewidywanych warunkach z kierowcą bazowego:

var config = require("../helpers/config.js"); 
var until = require('selenium-webdriver').until; 

var login = function() { 
    var driver = browser.driver; 

    driver.get(config.dsp.url); 
    driver.findElement(by.name("userName")).sendKeys(config.dsp.user); 
    driver.findElement(by.name("password")).sendKeys(config.dsp.password); 
    driver.findElement(by.name("submit")).click(); 

    return driver.wait(until.elementLocated(by.css(".sample-class-name")), 10000) 
     .then(e => driver.wait(until.elementIsVisible(e)), 10000); 
} 

module.exports = login; 
+0

Dziękuję. Tego właśnie szukałem. –

+0

Dziękuję, to samo dla mnie! – afaraut

Powiązane problemy