我正在使用量角器5.2.2。我必须使用它的字符串名称来找到一个dropdown元素。因此,我尝试使用以下代码,但无法正常工作。
element(by.xpath("//content[contains(string(), 'Learn more')]")).click();
or
element(by.xpath("//div[contains(string(), 'Learn more')]")).click();
UI代码在下面给出
<div jsname="YCbqLe">
<div jsaction="aLn7Wb:kbDuhe">
<div role="listbox" aria-expanded="false" class="Ej ljmwzf" jscontroller="YwHGTd" jsaction="click:cOuCgd(LgbsSe); keydown:I481le; keypress:Kr2w4b; mousedown:UX7yZ(LgbsSe),npT2md(preventDefault=true); mouseup:lbsD7e(LgbsSe); mouseleave:JywGue; touchstart:p6p2H(LgbsSe); touchmove:FwuNnf; touchend:yfqBxc(LgbsSe|preventMouseEvents=true|preventDefault=true); touchcancel:JMtRjd(LgbsSe); focus:AHmuwe; blur:O22p3e;b5SvAb:TvD9Pc;" jsshadow="" jsname="HvyTdb" aria-label="Add a button (optional)">
<div jsname="LgbsSe" role="presentation">
<div class="EI" jsname="d9BH4c" role="presentation">
<div class="Di LMgvRb y3" jsname="wQNmvb" jsaction="" data-value="" aria-selected="false" tabindex="-1" role="option">
<div class="Di LMgvRb" jsname="wQNmvb" jsaction="" data-value="BOOK" aria-selected="false" tabindex="-1" role="option">
<div class="Di LMgvRb" jsname="wQNmvb" jsaction="" data-value="ORDER" aria-selected="false" tabindex="-1" role="option">
<div class="Di LMgvRb" jsname="wQNmvb" jsaction="" data-value="SHOP" aria-selected="false" tabindex="-1" role="option">
<div class="Di LMgvRb bf" jsname="wQNmvb" jsaction="" data-value="LEARN_MORE" aria-selected="true" tabindex="0" role="option">
<div class="qm he" jsname="ksKsZd"></div>
<content class="u5 jh">
"Learn more"
</content>
</div>
<div class="Di LMgvRb" jsname="wQNmvb" jsaction="" data-value="SIGN_UP" aria-selected="false" tabindex="-1" role="option">
<div class="Di LMgvRb" jsname="wQNmvb" jsaction="" data-value="GET_OFFER" aria-selected="false" tabindex="-1" role="option">
</div>
</div>
如何使用文本“了解更多”来选择下拉文本“了解更多”。提前感谢
答案 0 :(得分:0)
您还可以如下使用css定位器
element(by.cssContainingText("content", "Learn more"))
或使用Xpath
element(by.xpath("//*[text()='Learn more']")
答案 1 :(得分:0)
看起来像文本有一些空格。您可以在标签之间复制完整的文本,并在xpath上方使用该文本,也可以尝试以下示例
//content[normalize-space(text())='Learn more']
或者您可以尝试使用此CSS
element(by.css("div[data-value="LEARN_MORE"] content")
答案 2 :(得分:0)
尝试使用此xpath查找元素。如果点击无法正常进行,则可能是此元素没有点击操作。
//div[@data-value="LEARN_MORE"]
您可以尝试调用以下任一操作的点击操作。
//div[@data-value="LEARN_MORE"]/div
或
GROUP BY