提问人:DJ22T 提问时间:6/2/2022 更新时间:6/2/2022 访问量:59
量角器得到 ocurrence 的第二个元素
Protractor get the second element of an ocurrence
问:
我有一个问题,我对量角器很陌生。
我需要通过其文本获取元素,现在无法更改 UI 的构建方式以使用更好的选择器。
所以我现在拥有的是一个带有文本的标签,要使用 XPath 检索元素,我执行以下操作:span
Summary
const myElement = element(by.xpath("//span[text()='Summary']"));
当屏幕上只有一个元素时,这适用于第一次出现的情况,但是,当有两个元素时,它会失败并出现以下错误:
- 失败:元素不可交互
可能是因为它正在尝试访问被切换的第一个元素。 因此,我尝试在阅读时访问元素索引:
element(by.xpath("//span[text()='Summary']")[1]);
并出现以下错误:
失败:定位器无效
我在某处读到这些值从 1 开始而不是从 0 开始,所以我尝试了:
element(by.xpath("//span[text()='Summary']")[2]);
但是,我仍然收到相同的错误:
失败:定位器无效
有没有办法让我得到这第二个元素?
答:
1赞
Md. Fazlul Hoque
6/2/2022
#1
当您使用列表切片时,存在多个元素。所以你可以尝试使用元素而不是元素
element(by.xpath("(//span[text()='Summary'])[2]");
或
element(by.xpath("(//span[contains(text(),'Summary')])[2]");
评论
1赞
DJ22T
6/2/2022
不幸的是,它给出了以下错误:失败:未定义元素
1赞
Md. Fazlul Hoque
6/2/2022
@Danny22 请看更新后的答案
0赞
DJ22T
6/2/2022
现在它确实奏效了,你介意更新第一段来解释你的建议而不是元素吗,我会接受你的回答。
0赞
K. B.
6/2/2022
#2
你可以试试这个XPath,它有额外的括号,你已经快到了。
(//span[text()='Summary'])[2]
评论