我寻求一些帮助,XPath选择一个后代元素。我已经学习了XPath的基础知识,但是无法将它们结合起来解决这个问题。量角器/ XPath的 - 查找包含包含文本
所以我在HTML网格包含大约30排,每排(从左至右)都有一个复选框和员工姓名。这里是行组成的一个片段:
<div class="ui-grid-row ng-scope" data-row-num="21"> //Whole row
<div role="row" ui-grid-row="row" class="ng-isolate-scope">
<div role="rowheader" id="1746254927-13-urGrid-005-cell"> //This is checkbox
<div role="gridcell" id="17443224958-13-urGrid-005-cell">
<div class="ui-grid-cell-contents ng-binding text-left"> Appleseed, Jonny</div>
我的目标是要找到:DIV CLASS =“UI格列NG-范围”数据行NUM =“21”>基于它的后裔包含“Appleseed,Jonny”。从这里,我将用getAttribute提取data-row-num,然后导航到正确的复选框。
我至今是:
element(by.xpath("//div[@class='ui-grid-row ng-scope') and contains(.//div, 'Appleseed, Jonny')]"));
有人能帮助指向我在这里正确的方向?我不是在寻找包含这个文本的元素,而是它的父元素,所以我可以提取它的data-row-num。
或者,如果我能找到包含“苹果核战记,强尼”的div元素我怎么会那么找到它的父元素(在这种情况下,它不是直接父,但2元了)?
这似乎工作(如果到NG-scope'后'移除多余的支架)。你能更详细地描述这个问题吗? – Andersson
所以每个'行'中有5个div元素。第一个div包含行中的所有div,第二个div包含2个div,其中一个是复选框,另一个是员工姓名,员工姓名div包含另一个具有员工姓名文本的div。这些'行'有几个,每个都有不同的员工姓名。我想要根据员工姓名在代码段中看到的顶级div元素。因此,在data-row-num的每个div中都有另一个包含雇员名称的div,我如何过滤行以返回包含雇员姓名的后代div的行 – Bluejuice
感谢您收集括号,我将其删除但它仍然无法正常工作 – Bluejuice