我有个问题,我对量角器很陌生。
我需要通过文本获取元素,目前无法更改UI的构建方式以使用更好的选择器。文章源自玩技e族-https://www.playezu.com/179083.html
所以我现在有一个 跨度
用文本标记 总结
在其中,要使用XPath检索元素,我需要执行以下操作:文章源自玩技e族-https://www.playezu.com/179083.html
const myElement = element(by.xpath("//跨度[text()='总结']"));
当屏幕上只有一个元素时,这适用于第一次出现,但是,当有两个元素时,它会失败,并出现以下错误:文章源自玩技e族-https://www.playezu.com/179083.html
- 失败:元素不可交互
可能是因为它试图访问切换的第一个元素。
因此,我在阅读时尝试访问元素索引:文章源自玩技e族-https://www.playezu.com/179083.html
element(by.xpath("//跨度[text()='总结']")[1]);
并得到以下错误:文章源自玩技e族-https://www.playezu.com/179083.html
失败:定位器无效文章源自玩技e族-https://www.playezu.com/179083.html
我在某个地方读到值从1开始,而不是从0开始,所以我尝试了:文章源自玩技e族-https://www.playezu.com/179083.html
element(by.xpath("//跨度[text()='总结']")[2]);
然而,我仍然会遇到同样的错误:文章源自玩技e族-https://www.playezu.com/179083.html
失败:定位器无效文章源自玩技e族-https://www.playezu.com/179083.html
有什么方法可以到达第二个元素吗?文章源自玩技e族-https://www.playezu.com/179083.html
未知地区 2F
你可以试试这个XPath,它有额外的括号,你已经差不多做到了。
(//span[text()=“Summary”])[2]
参考:
获取元素第n个实例的XPath查询
未知地区 1F
使用列表切片时,存在多个元素。因此,您可以尝试使用元素而不是元素
element(by.xpath("(//span[text()=’Summary’])[2]");
或
element(by.xpath("(//span[contains(text(),’Summary’)])[2]");