我使用了一个带有selenium和protractor的自动化框架,用JavaScript编写代码。然而,应用程序的这一部分是没有Angular的。我有一个数量字段与一个加号和减号按钮来增加数字。我需要为我的测试选择数字本身。
这是一个数字为'2‘的DOM
<div class="modify-product padding-lg-top hide-on-review">
<b data-lang-key="store.qty">Qty:</b>
<span class="modify-action">
<span class="remove">-</span>
<span class="product-quantity">2</span>
<span class="add">+</span>
</span>
</div>如果我在控制台中使用JQuery,我可以通过以下内容选择2:
$('.cart-product .product-quantity').text()现在,在selenium中,我尝试使用以下选择器:
return element(by.css('.cart-product .product-quantity').text())到目前为止,这被证明是不成功的。我还尝试了.val()和其他一些方法,但我尝试的所有方法都会返回整个span元素或返回未定义的元素。
有什么想法?
发布于 2016-11-15 16:12:29
return element(by.className('product-quantity')).getText();记住,getText()返回一个promise.So,您必须使用then()来获取值
发布于 2017-05-06 20:48:10
请记住,量角器方法总是返回promises,因为它们是异步操作。您的测试应该如下所示:
let quantities = element.all(by.css('.product-quantity'));
quantities.get(0).then(function(el) {
expect(el.getText()).to.become('2');
});https://stackoverflow.com/questions/40599835
复制相似问题