2016-09-12 9 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はコメントをお寄せいただきありがとうございます...確かに私は別のテスト(Y)

でそれを使用します