量角器 - Selenium 没有找到移动设备的价值,但在 HTML DOM

Protractor - Selenium doesn't find value for mobile but is in HTML DOM

所以我在抓取移动测试用例时遇到了一些问题。当我尝试

const orderNumber = element(by.css('[data-ft="order-number"]'))
const orderNumberText = await orderNumber.getText();
console.log(`Order Number: ${orderNumberText}`);

在台式机上工作正常,但在移动设备上找不到它(console.log 的空 return),我试图打印出整个 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() returns 一个可见的文本值,因此如果您没有滚动到元素或元素重叠,它 returns 一个空字符串。

在这种情况下,您需要使用 .getAttribute('innerText');

const orderNumber = element(by.css('[data-ft="order-number"]'))
const orderNumberText = await orderNumber.getAttribute('innerText');
console.log(`Order Number: ${orderNumberText}`);

尝试一下,看看是否有效