2017-02-15 10 views
0

NightwatchJsで機能テストを実行していますが、これに似たHTMLがあります。Nightwatch - DOMでクラスが複製されている要素を取得します

<div> 
    <span class="ps-cls">value 1</span> 
</div> 
<div> 
    <span class="ps-cls">value 2</span> 
</div> 

私が必要とするのは、値2の第2スパンの値を取得することです。 私は疑似クラスを試しましたが、それを取得できませんでした。

どうすればそのような要素を取得できますか? (重複したクラスを持つnodeChild)。

答えて

0

これを試してみてください:

browser.getText("div:nth-of-type(2) > .ps-cls", function(result) { 
    this.assert.equal(typeof result, "object"); 
    this.assert.equal(result.status, 0); 
    this.assert.equal(result.value, "nightwatchjs.org"); 
    }); 

nightwatch.js getText

+0

:NG、より詳細な説明のために、あなたは別の質問に私の答えを参照することができます。残念ながら、疑似クラスを取得します。それはそれらを許可しないdocument.querySelectorを使用すると考えます。 –

+0

xpathを使ってみましたか? – QualiT

+0

いいえ、私はすべてのマークアップが動的に生成されたので、このテストがベータ環境で行われたために変更される可能性があると考えていませんでした。私はそれを試してみると、それが機能すれば答えを修正できるので、私はあなたにチェックを与えることができます。 –

1

XPathを使用://div[2]/span[@class="ps-cls"]

あなたはスパン

var a_text = ''; 
browser.getText('//div[2]/span[@class="ps-cls"]',function(object){ 
    a_text=object.value; 
}) 

.getTextの値を取得するには.getText()を使用することができます

( )は、ストライドではなくWebElement JSON OBJECTを返していますそれは動作しませんでした

https://stackoverflow.com/a/45639217/8444504

関連する問題