无法使用Nightwatch找到列表元素

时间:2018-05-15 13:37:33

标签: selenium selenium-webdriver webdriver nightwatch.js assertions

我有一些列表元素:

< button id={"productBook"} className="fito-btn fito-btn-long" style={this.props.styles.btnBrandRevers} onClick={this.props.onOfferSelect.bind(null, product)}>
 < FormattedMessage id='app.Book' defaultMessage='Book' />
< /button>

将标识为productBook的元素声明为:

.assert.visible('button[id=productBook]')

我收到了一个错误:

Testing if element <button[id=productBook]> is visible. Element could not be located. - expected "true" but got: "null"

我不明白为什么这对于这个特定元素不起作用,而它适用于其他元素。是否有一些不同的方式需要验证列表元素? 请帮忙。

3 个答案:

答案 0 :(得分:0)

尝试使用简写#作为ID:

assert.visible('button#productBook')

assert.visible('#productBook')

答案 1 :(得分:0)

根据您分享的HTML,动态生成<button> id 属性。因此,您可能无法通过 ID 断言。相反,您可以通过以下定位器策略 断言 FormattedMessage 的可见性

  • xpath

    //button[@class='fito-btn fito-btn-long']/FormattedMessage[@id=\"app.Book\"][@defaultMessage='Book']
    

答案 2 :(得分:0)

尝试以下操作:

.assert.not.elementPresent('tr[...]')