量角器 - 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}`);
尝试一下,看看是否有效
所以我在抓取移动测试用例时遇到了一些问题。当我尝试
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}`);
尝试一下,看看是否有效