我有以下HTML代码。我需要控制日志或仅打印desc
类文本 - "打印此文件"而不是量角器或硒中的spell
类文本。
<span class="desc">
Print this
<a class="new-link" href="#">
<span class="spell">And not this</span>
</a>
</span>
我尝试getText()
,但它打印完整的语句,代码如下 -
打印此而不是
在使用Javascript的Protractor中:
element(by.css('.desc')).getText().then(function(text){
console.log(text);
});
在Selenium中使用Java:
System.out.println(driver.findElement(by.xpath('//*[@class=".desc"]')).getText());
如何仅打印文本的第一部分(例如,&#34;打印此文件&#34;)?
任何建议或帮助将不胜感激?感谢。
答案 0 :(得分:1)
我使用Michael的解决方案并嵌入到我的测试规范中而不调用该函数。如果需要重复使用它作为单独的功能仍然会更好。但是,如果您需要内联解决方案,请按以下步骤操作 -
it("Get First part of text", function(){
browser.executeScript(function () {
var el = arguments[0], text = '';
for (var i = 0, l = el.childNodes.length; i < l; i++)
if (el.childNodes[i].nodeType === Element.TEXT_NODE)
text += el.childNodes[i].nodeValue;
return text.trim();
},$('.desc').getWebElement()).then(function(text){
//use expect statements with "text" here as needed
});
});
希望它有所帮助。