Protractor 如何在量角器中定位类中的多个文本元素?
在我的测试中,我需要使用量角器测试验证突出显示的文本(肯塔基州列克星敦)Protractor 如何在量角器中定位类中的多个文本元素?,protractor,Protractor,在我的测试中,我需要使用量角器测试验证突出显示的文本(肯塔基州列克星敦) <li id="address" class="list"> <div class="content"> <small class="mb-1"> <span> Suite # 278 <br> </span> **Lexington, KY** </small> </li> 278套房 **肯塔基州列克星敦** 如何
<li id="address" class="list">
<div class="content">
<small class="mb-1">
<span>
Suite # 278
<br>
</span>
**Lexington, KY**
</small>
</li>
278套房
**肯塔基州列克星敦**
如何使用css或cssContainingText定位器验证突出显示的文本?事实上,量角器的创建者已经做好了准备,请仔细阅读,以便更好地了解
css
&cssContainingText
的使用。我将在这里简短地回答您的问题-使用元素(by.cssContainingText('.content','Lexington'))
更新1:
如果要添加断言。。这样做-
expect(element(by.cssContainingText('.content','Lexington'))).toContain('Lexington,KY')
对于一个我感到困惑的问题,因为您似乎从未关闭content div…它是在li关闭后关闭的吗
无论如何,我只是简单地更改HTML,这样您就不需要一些疯狂复杂的选择器了。我会这样做:
<li id="address" class="list">
<div class="content">
<small class="mb-1">
<span>
Suite # 278
<br>
</span>
<cityState>Lexington, KY</cityState>
</small>
</li>
function checkCityState(){
return element(by.tagName('cityState')).getText();
}
expect(checkCityState()).toBe('Lexington, KY');
278套房
肯塔基州列克星敦
函数checkCityState(){
返回元素(按.tagName('cityState')).getText();
}
expect(checkCityState()).toBe('Lexington,KY');
Try:driver.findelement(by.xpath(.//span[contains(text,Suite#278)]);
driver.findelement(by.xpath(.//li[contains(text,**Lexington,KY**)];
driver.findelement(by.xpath(.//li[text(),Suite#278)];
driver.findelement(by.xpath(.//li[text(),Lexington,KY
@Kishan-感谢您的回复,但我们没有使用xpath。您能建议使用css包含文本定位器吗?尝试过,但我收到消息,预期'Suite#271 Lexington,KY'等于'Lexington,KY'。我给出了div
css,因此它将获得完整的文本…只需使用toContain()
。我已经更新了答案谢谢你,aditya,我有动态值。但是我已经参数化了,它工作了。如果你不能或者不想添加这个标记,我想“return element(by.id('address')).element(by.css('.mb-1>span::after')).getText();”也可以工作(就像复杂的方式一样,呵呵)。