我试图从量角器获取元素的文本。
我有类似
的东西var te = element.all(by.css('.menu li')).get(0).getText();
console.log(te)
html
<ul class="menu">
<li>Test first</li>
<li>test second</li>
<li>third</li>
</div>
我想要的只是'先测试'但我的控制台日志显示整个量角器对象。
{ ptor_:
{ controlFlow: [Function],
schedule: [Function],
setFileDetector: [Function],
getSession: [Function],
getCapabilities: [Function],
quit: [Function],
actions: [Function],
touchActions: [Function],
executeScript: [Function],
executeAsyncScript: [Function],
call: [Function],
wait: [Function],
sleep: [Function],
getWindowHandle: [Function],
getAllWindowHandles: [Function],
getPageSource: [Function],
close: [Function],
getCurrentUrl: [Function],
getTitle: [Function],
findElementInternal_: [Function],
findDomElement_: [Function],
findElementsInternal_: [Function],
takeScreenshot: [Function],
manage: [Function],
switchTo: [Function],
driver:
{ session_: [Object],
executor_: [Object],
flow_: [Object],
fileDetector_: null },
…..mroe
我也试试
var te = element.all(by.css('.menu li')).get(0).getSize();
和
var te = element.all(by.css('.menu li')).first().getSize();
但仍然获得整个对象。任何人都可以帮我解决这个难题吗?非常感谢!
答案 0 :(得分:3)
Protractor中的所有(公共)函数可能都是promises,因此要获取元素的文本,您需要编写以下代码:
element.all(by.css('.menu li')).get(0).getText().then(function(text) {
console.log(text);
});
相同的结构适用于.getSize()。
只有量角器能够自动解决这些承诺。
expect(myElement.getText()).toEqual("resolved");
答案 1 :(得分:0)
试试这个JavaScript代码:
x=document.getElementsByTagName("li");
te=x[0].innerHTML;
现在使用te创建日志。