首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择范围内的动态数字

选择范围内的动态数字
EN

Stack Overflow用户
提问于 2016-11-15 07:55:06
回答 3查看 109关注 0票数 0

我使用了一个带有selenium和protractor的自动化框架,用JavaScript编写代码。然而,应用程序的这一部分是没有Angular的。我有一个数量字段与一个加号和减号按钮来增加数字。我需要为我的测试选择数字本身。

这是一个数字为'2‘的DOM

代码语言:javascript
复制
<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:

代码语言:javascript
复制
$('.cart-product .product-quantity').text()

现在,在selenium中,我尝试使用以下选择器:

代码语言:javascript
复制
return element(by.css('.cart-product .product-quantity').text())

到目前为止,这被证明是不成功的。我还尝试了.val()和其他一些方法,但我尝试的所有方法都会返回整个span元素或返回未定义的元素。

有什么想法?

EN

回答 3

Stack Overflow用户

发布于 2016-11-15 13:48:31

请参阅以下链接。

Link 1

Link 2

重要事项-永远不要在这种情况下使用xpath

票数 0
EN

Stack Overflow用户

发布于 2016-11-15 16:12:29

代码语言:javascript
复制
return element(by.className('product-quantity')).getText();

记住,getText()返回一个promise.So,您必须使用then()来获取值

票数 0
EN

Stack Overflow用户

发布于 2017-05-06 20:48:10

请记住,量角器方法总是返回promises,因为它们是异步操作。您的测试应该如下所示:

代码语言:javascript
复制
let quantities = element.all(by.css('.product-quantity'));
quantities.get(0).then(function(el) {
  expect(el.getText()).to.become('2');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40599835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档