2016-05-05 23 views
0

でクリックできない、私は分度器をクリックして、このIDを使用する場合、私はボタンは、私は私のアプリのid =「ログアウト」のボタンを持っているE2E

it('4 should click Log out',() => {  
     element.all(by.id('logOut')).click(); 
     browser.driver.sleep(5000);   
    }); 

エラーを取得する私のhtmlは

<ion-buttons end> 
     <button (click)='signOut()'> 
      <ion-icon id="logOut"name="log-out"></ion-icon> 
     </button> 
    </ion-buttons> 
ですターミナルで

私errが

should click Log out 
     - Failed: unknown error: Element is not clickable at point (1028, 28). Other element would receive the click: <button class="bar-button bar-button-default bar-button-icon-only">...</button> 
    (Session info: chrome=50.0.2661.94) 
    (Driver info: chromedriver=2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform=Mac OS X 10.11.2 x86_64) 
F 
+0

IDに 'element.all'を呼び出す理由はありますか? IDはユニークなので、 '.all'を使う必要はありません – Gunderson

答えて

0

だから私は最近、同様の問題に遭遇し、ウィンドウサイズは、むしろそれは、オーバーレイ/背景の問題になってしまった問題ではありませんでした。これはあなたの問題だが、私はそれをそこに投げ捨てると思っていたかどうかは分かりません。この記事への参照先はlinkです。

検索する前に睡眠を追加すると(Protractor API docsに記載されています)、私の車輪を回転させた後に動きました。最後に、フローを処理した後にbrowser.waitを取得しました。

it('4 should click Log out',() => { 
    browser.sleep(1000); 
    element(by.id('logOut')).click();   
}); 

-or- 

var EC = protractor.ExpectedConditions; 
var logoutButton = element(by.id('logOut')); 
browser.wait(EC.elementToBeClickable(logoutButton), 5000); 
logoutButton.click(); 

運が良かった!

0

分度器はそれがid="logOut"を持つ要素を見つけたことを言っているが、それは、cにしようとした場合その要素を舐めると、代わりにその画面の場所の何かがクリックされます(button class="bar-button")。

あなたのページを視覚的に見て、ログアウトボタンに重複していないものがないことを確認してください。または、アイコンの代わりにIDを<button>要素に置く必要があるため、分度器が正しいものをクリックすることができます。

この動作は、クロム(重複する要素をクリックできないほど厳しいようです)とFirefox(これは時には他の要素の下にある要素をクリックする可能性があります)と異なる場合があります。

0

@ martin770の大きな説明に追加するには、クリックしたい要素を「ホバーする」要素があります。私はあなたのアプリケーションの壊れた/サイズ変更されたレイアウトのためにこれが疑わしいです。お使いの設定でonPrepare()にこれを入れ、は、ブラウザのウィンドウを最大化してみてください。

browser.driver.manage().window().maximize(); 
関連する問題