2017-02-15 93 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)的值。 我嘗試過僞類,但我無法得到它。

我怎樣才能得到那種元素? (具有重複類的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

它沒有工作。不幸的是得到僞類。它認爲它使用了不允許它們的document.querySelector。 –

+0

你有沒有嘗試過使用xpath? – QualiT

+0

不,我沒有,因爲所有標記它的動態生成,所以我認爲這可能會改變,因爲這個測試是在測試版環境中進行的。我會嘗試,如果它可以工作,你可以修改答案,所以我可以給你檢查。 –

1

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

您可以使用.getText()來獲取跨度

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

.getText的值( )正在返回一個WebElement JSON OBJECT而不是一個stri NG,對於更詳細的解釋,你可以參考我在回答另一個問題:

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