2016-10-11 4 views
1

次のコードは、thisとして "/ assets/css /"で始まるhref attributeの要素を収集するように設計されています。私は、印刷しようとしていないのに しかし、次のエラーここbrowser.elements()から返された要素の使用方法は?

TypeError: Cannot read property 'value' of undefined

var styleSheetsElems = browser.elements('[href^="/assets/css/"]').value; 

for (let iter1 in styleSheetsElems) 
{ 
    console.log(browser.elementIdAttribute(iter1, 'href').value); 
}; 
  • 私は要素が存在していることがわかりますのいずれかでbrowser.elementIdAttribute(iter1, 'href').valueまたはbrowser.elementIdAttribute(iter1, 'href')クラッシュにアクセスするための最初の試みは、(私は、Arrayを通過することができます)。

私の理解では、styleSheetsElems移入が... HREFを既存の有する要素のため

印刷を保証すべきであるということです。掘りので、運が

{ state: 'success', 
    sessionId: '652f9f1c-6cad-42d7-89a3-e09a1acbd1af', 
    hCode: 1951176523, 
    value: 
    [{ ELEMENT: '11' }, 
    { ELEMENT: '12' }, 
    { ELEMENT: '88' }], 
    class: 'org.openqa.selenium.remote.Response', 
    selector: '[xyz]', 
    _status: 0 } 

...でelements('[xyz]')結果、さらに

クエリのための適切な構文は以下の通りであった
+0

あなたはiter1をプリントアウトしましたか?クラッシュする前に値は何ですか? – GreenAsJade

+0

は0です(最初の要素)。しかし、それをスキップしようとすると、要素1でクラッシュします... – Peter

+0

したがって、要素0と要素1の両方に 'href'が含まれていないようですね?どうすれば 'browser.elements( '[href^="/assets/css/"]')'を印刷して、すべての要素が実際に何かを確認することができますか? – GreenAsJade

答えて

2

var styleSheetsElems = browser.elements('[href^="/assets/css/"]').value; 

for (let iter1 in styleSheetsElems) 
{ 
    console.log(browser.elementIdAttribute(styleSheetsElems[iter1].ELEMENT, 'href').value); 
}; 

手伝ったいくつかのテストがプリントアウトされましたGreenAsJadeの提案のように配列の内容..そして、私は 'iter1'がその配列に格納されているelementIDと同じであるという前提を作っていました。どうもありがとう!

+0

クール:)ストーリーのモラル:あなたの前提条件をテストするための印刷物(別名「理解」))。私はこの時点でドキュメントが貧弱であると言わなければなりません。私はこのライブラリを使用せず、ドキュメントの '.ELEMENT'についてのコメントを見て、それが何を話しているのか分からなかったので、混乱していた。 – GreenAsJade

関連する問題