2017-10-26 6 views
0

サイド・メニューのダッシュボード項目で要素を見つけることができません。これを解決するために私を助けてください。私はスクリーンショットの打撃を述べ、場所を見つけるためのステップ。以下はnode.jsを使用してnightwatch.js内の要素の位置を取得する方法

enter image description here

htmlコードです:

<sidemenu id="sidebar-wrapper" layout="column" class="layout-column"><md-list role="list"> 
    <md-list-item layout="column" role="listitem" class="md-no-proxy _md layout-column"> 
     <a class="md-button md-ink-ripple layout-align-center-center layout-column" ng-transclude="" md-button="" aria-label="menu" href="#/dashboard" layout="column" layout-align="center center"> 
      <i class="material-icons silver ng-scope">view_module</i> 
      <span class="ng-scope"> 
      Dashboard 
      </span> 
     </a> 
    <div class="md-secondary-container"></div></md-list-item> 
    <md-list-item layout="column" role="listitem" class="md-no-proxy _md layout-column"> 
     <a class="md-button md-ink-ripple layout-align-center-center layout-column" ng-transclude="" md-button="" aria-label="menu" href="#/projects" layout="column" layout-align="center center"> 
      <i class="material-icons silver ng-scope">perm_data_setting</i> 
      <span class="ng-scope"> 
      Projects 
      </span> 
     <div class="md-ripple-container" style=""></div></a> 
    <div class="md-secondary-container"></div></md-list-item> 
    <md-list-item layout="column" role="listitem" class="md-no-proxy _md layout-column"> 
     <a class="md-button md-ink-ripple layout-align-center-center layout-column" ng-transclude="" md-button="" aria-label="menu" href="#/pipelines" layout="column" layout-align="center center"> 
      <i class="material-icons silver ng-scope">linear_scale</i> 
      <span class="ng-scope"> 
      Pipelines 
      </span> 
     </a> 
    <div class="md-secondary-container"></div></md-list-item> 
</md-list></sidemenu> 

私は以下のタグにHREF = "#/プロジェクトをクリックする必要が

sidemenu - > MD-。リスト - > md-lidt-item 1 - > a href = "#/ projects"

私はさまざまな方法で試しましたが、テストケースに合格しません。

使用useXpath:

browser.useXpath() 
browser.click('//*[@id="sidebar-wrapper"]/md-list/md-list-item[1]/a[href="#/projects"]') 
browser.useCss() 

とのgetLocationを使用して:

browser.getLocation("#sidebar-wrapper md-list md-list-item.second a" ,function(result) { 
      console.log('result', result) // not getting anything. 

     }) 

このようなコンソールのエラーを取得し、上記のコードを使用している間。

result { status: -1, 
    value: { message: 'no such element: Unable to locate element: {"method":"css selector","selector":"#sidebar-wrapper md-list md- 
list-item.second a"}\n (Session info: chrome=61.0.3163.100)\n (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9a 
a4915ba81d9023f),platform=Windows NT 10.0.15063 x86_64)' }, 
    errorStatus: 7, 
    error: 'An element could not be located on the page using the given search parameters.' } 
ERROR: Unable to locate element: "#sidebar-wrapper md-list md-list-item.second a" using: css selector 

これを解決してください。おかげ

+0

を得るためにあなたのあなたは画像として投稿したhtmlで投稿しますか? –

+0

htmlコードを追加してください。 – Mahesh

答えて

0

は、このことができます願ってい

browser.getLocation("#sidebar-wrapper md-list md-list-item a:eq(1)').attr('href')" ,function(result) { 
    console.log('result', result); 
}) 

、このようgetAttributeコマンドを使用してみてください!

+0

私はすでにそれを使用しましたが、同じ結果を返します – Mahesh

+0

@Maheshこの式は、=> '$( '#サイドバーラッパーmd-list md-list-item a:eq(1)')attr(" href " ); '。私は同じ答えを更新しました。動作しているか確認してください。 –

+0

私はそれをテストしましたが、このエラーが発生しました。 結果{status:-1、 値:{message: '無効なセレクタ:無効なセレクタまたは無効なセレクタが指定されました\ n(セッション情報:chrome = 61.0.3163.100)\ n(D 川情報:chromedriver = 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f)、プラットフォーム= Windows NT 10.0.15063 x86_64) '}、 errorStatus:32、 エラー:'引数が無効なセレクタ(XPath/CSSなど)でした。 } エラー:要素を見つけることができません: "#sidebar-wrapper md-list md-list-item a:eq(1) ')。attr(' href ')":cssセレクタ – Mahesh

0

#sidebar-wrapper md-list md-list-item:nth-child(2)

n番目の子を試してみてください(n)は、n番目の要素を取得するためのより良いアプローチです。

:最後の1

取得するには、最後の子:最初の子は、最初の1

を取得するn番目の子(n)をアップデートしてくださいでき番目の1

+0

私はこのように試してみましたが、間違いがあった場所を一度確認してください browser.getLocation( "#サイドバーラッパーmd-list md-list-item:nth-​​child(2)結果){ console.log( 'result'、result); }) – Mahesh

+0

このセレクターを直接クリックしますか – Raymond

関連する問題