2016-09-12 2 views
0

Я пытаюсь войти в мое приложение с Google и транспортиром. Я не могу найти ошибку. Кажется, что элемент отсутствует, но элемент отлично работает в тесте. Пожалуйста, помогите мне с этим.Социальный вход с транспортиром

Вот код Теста в

browser.getAllWindowHandles().then(function (handles) { 
     var popupHandle = handles[1]; 
     browser.switchTo().window(popupHandle); 
     var email = browser.driver.findElement(by.name('Email')); 
     var signIn = browser.driver.findElement(by.name('signIn')); 
     email.sendKeys(browser.params.login.user || process.env.GOOGLE_USER); 
     signIn.click(); 
     browser.driver.sleep(2000); 

     var password = browser.driver.findElement(by.name('Passwd')); 
     password.sendKeys(browser.params.login.password || process.env.GOOGLE_PASS); 
     var login = browser.driver.findElement(by.css('.rc-button')); 
     login.click(); 
     browser.driver.sleep(10000); 
     browser.driver.switchTo().window(handles[0]); 

    }); 

и здесь ошибка

16:30:05.655 INFO - Done: [find element: By.cssSelector: *[name="signIn"]] 
16:30:05.659 INFO - Executing: [click: 3 [[ChromeDriver: chrome on LINUX (e0625e8b3f72a0f40228f4f4e90c2c9d)] -> css selector: *[name="signIn"]]]) 
16:30:05.945 WARN - Exception thrown 
org.openqa.selenium.ElementNotVisibleException: element not visible 

Я не знаю, если есть обходной путь, чтобы сделать это, но я не могу найти решение в для входа в систему с транспортиром. Пожалуйста, помогите

ответ

0

Может быть, ваша кнопка входа включена только после подтверждения вашего письма. Вы должны сделать что-то вроде ниже

var EC = protractor.ExpectedConditions; 

browser.wait(EC.visibilityOf(signIn,5000).then(function() { signIn.click()}):        

0

Спасибо ... Я пробовал это, но это не работает ... Что на самом деле работал для меня был введен код для входа в функцию OnPrepare в файле конфигурации.

Нравится это.

onPrepare: function() { 
    var site = browser.params.site; 
    browser.get(site); 
    element(by.css('.btn-crearseguro-nav')).click(); 
    element(by.id('gm')).click(); 
    //Sign in with to popup 
    browser.getAllWindowHandles().then(function (handles) { 
     var popupHandle = handles[1]; 
     browser.switchTo().window(popupHandle); 
     var email = browser.driver.findElement(by.name('Email')); 
     var signIn = browser.driver.findElement(by.name('signIn')); 
     email.sendKeys(browser.params.login.user || process.env.GOOGLE_USER); 
     signIn.click(); 
     browser.driver.sleep(10000); 

     var password = browser.driver.findElement(by.name('Passwd')); 
     password.sendKeys(browser.params.login.password || process.env.GOOGLE_PASS); 
     var login = browser.driver.findElement(by.id('signIn')); 
     login.click(); 
     browser.driver.sleep(5000); 
     browser.driver.switchTo().window(handles[0]); 
    }); 
}, 

И это работает хорошо ... Но спасибо за YOUT комментарий ... Конечно, я буду использовать его в другом тесте (у)

Смежные вопросы