我正在使用带有selenium和量角器的自动化框架,用JavaScript编码。但是,应用程序的这一部分是在没有Angular的情况下完成的。我有一个带有加号和减号按钮的数量字段来增加数量。我需要为我的测试选择数字本身。
这是DOM,数字为“2”
<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元素,或者返回undefined。
思想?
答案 0 :(得分:0)
答案 1 :(得分:0)
return element(by.className('product-quantity')).getText();
记住getText()返回一个promise.So你必须使用then()来获取值
答案 2 :(得分:0)
请记住,量角器方法总是返回promises,因为它们是异步操作。您的测试应如下所示:
/* Make the images wide and responsive. */
#myCarousel img {
height: auto;
max-width: 100%;
width: 100%;
}
/* Change the order of the indicators.
Return them to the center of the slide. */
.carousel-indicators {
width: auto;
margin-left: 0;
transform: translateX(-50%);
}
.carousel-indicators li {
float: right;
margin: 1px 4px;
}
.carousel-indicators .active {
margin: 0 3px;
}
/* Change the direction of the transition. */
@media all and (transform-3d), (-webkit-transform-3d) {
.carousel-inner > .item.next,
.carousel-inner > .item.active.right {
left: 0;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
}
.carousel-inner > .item.prev,
.carousel-inner > .item.active.left {
left: 0;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
}
}