所以当涉及移动测试用例时,我遇到了一些问题。当我尝试
const orderNumber = element(by.css('[data-ft="order-number"]'))
const orderNumberText = await orderNumber.getText();
console.log(`Order Number: ${orderNumberText}`);
对于台式机来说运行良好,但对于移动设备来说,找不到它(console.log的空返回),我试图打印出整个HTML DOM,然后在那里找到了值。
<div class="orderconfirmation-page">
<h3 class="orderconfirmation-title">Thank you for your purchase.</h3>
<div class="orderconfirmation-text">your order reference number:
<span class="order-number" data-ft="order-number">7940700123456</span>
</div>
正如我提到的。我之前发布的代码与台式机完美匹配,但是一旦通过移动设备完成操作,它就找不到值data-ft =“ order-number”,而是通过HTML DOM检查,它在那里。
我在做什么错?
[.getText()
返回一个可见的文本值,因此,如果您没有滚动到元素或元素重叠,它将返回一个空字符串。
在这种情况下,您需要使用.getAttribute('innerText');
const orderNumber = element(by.css('[data-ft="order-number"]'))
const orderNumberText = await orderNumber.getAttribute('innerText');
console.log(`Order Number: ${orderNumberText}`);
尝试一下,看看是否可行