如何为 table 中从 div 构建的特定行中的特定图标编写 css/xpath 选择器?
How to write css/xpath selector for a specific icon in specific row in table that is built from div's?
我正在尝试访问动态 table 中特定元素的 "Edit" 图标。
HTML -
<div class="fixedDataTableLayout_rowsContainer" style="height: 323px; width: 1882px;">
<div class="fixedDataTableColumnResizerLineLayout_main fixedDataTableColumnResizerLineLayout_hiddenElem public_fixedDataTableColumnResizerLine_main" style="width: 0px; height: 325px; left: 0px;">
<div class="fixedDataTableColumnResizerLineLayout_mouseArea" style="height: 325px;"></div>
</div>
<div class="fixedDataTableRowLayout_rowWrapper" style="width: 1882px; height: 48px; z-index: 1; left: 0px; top: 0px;">
<div class="fixedDataTableRowLayout_main public_fixedDataTableRow_main fixedDataTableLayout_header public_fixedDataTable_header" style="width: 1882px; height: 48px;">
<div class="fixedDataTableRowLayout_body">
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 48px; width: 0px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 48px; position: absolute; width: 0px; z-index: 2; left: 0px; top: 0px;"></div>
</div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 48px; width: 1882px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 48px; position: absolute; width: 1882px; z-index: 0; left: 0px; top: 0px;">
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 48px; width: 916px; left: 0px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell cell-header text-center" style="height: 48px; width: 916px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<div class="sort-by ">Facility
<i class="fa fa-sort-undefined" style="margin-left: 3px; position: absolute; top: -3px;"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 48px; width: 866px; left: 916px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell cell-header text-center" style="height: 48px; width: 866px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<div class="sort-by "># of rooms
<i class="fa fa-sort-undefined" style="margin-left: 3px; position: absolute; top: -3px;"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 48px; width: 100px; left: 1782px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1" style="height: 48px; width: 100px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="" style="left: 0px; height: 48px;"></div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 48px; width: 0px; left: 1882px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 48px; position: absolute; width: 0px; z-index: 2; left: 0px; top: 0px;"></div>
</div>
</div>
</div>
</div>
<div>
<div class="fixedDataTableRowLayout_rowWrapper" style="width: 1882px; height: 60px; z-index: 0; transform: translate3d(0px, 48px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableRowLayout_main public_fixedDataTableRow_main public_fixedDataTableRow_even public_fixedDataTable_bodyRow" style="width: 1882px; height: 60px;">
<div class="fixedDataTableRowLayout_body">
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 1882px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 1882px; z-index: 0; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 916px; left: 0px;">
<div data="[object Object],[object Object],[object Object]" field="name" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell undefined" style="height: 60px; width: 916px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">uitestsfacility</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 866px; left: 916px;">
<div data="[object Object],[object Object],[object Object]" field="roomCount" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 866px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">1</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 100px; left: 1782px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 100px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<i class="fa fa-edit" data-tip="Edit Facility"></i>
<i class="fa fa-trash-o disabled" data-tip="Cannot be deleted due to rooms or devices belonged to this facility"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="" style="left: 0px; height: 60px;"></div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 1882px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableRowLayout_rowWrapper" style="width: 1882px; height: 60px; z-index: 0; transform: translate3d(0px, 108px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableRowLayout_main public_fixedDataTableRow_main public_fixedDataTableRow_highlighted public_fixedDataTableRow_odd public_fixedDataTable_bodyRow" style="width: 1882px; height: 60px;">
<div class="fixedDataTableRowLayout_body">
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 1882px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 1882px; z-index: 0; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 916px; left: 0px;">
<div data="[object Object],[object Object],[object Object]" field="name" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell undefined" style="height: 60px; width: 916px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">testsearchfacility</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 866px; left: 916px;">
<div data="[object Object],[object Object],[object Object]" field="roomCount" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 866px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">1</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 100px; left: 1782px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 100px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<i class="fa fa-edit" data-tip="Edit Facility"></i>
<i class="fa fa-trash-o disabled" data-tip="Cannot be deleted due to rooms or devices belonged to this facility"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="" style="left: 0px; height: 60px;"></div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 1882px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableRowLayout_rowWrapper" style="width: 1882px; height: 60px; z-index: 0; transform: translate3d(0px, 168px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableRowLayout_main public_fixedDataTableRow_main public_fixedDataTableRow_even public_fixedDataTable_bodyRow fixedDataTableLayout_hasBottomBorder public_fixedDataTable_hasBottomBorder" style="width: 1882px; height: 60px;">
<div class="fixedDataTableRowLayout_body">
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 1882px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 1882px; z-index: 0; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 916px; left: 0px;">
<div data="[object Object],[object Object],[object Object]" field="name" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell undefined" style="height: 60px; width: 916px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">AutomationFacility 1249.0</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 866px; left: 916px;">
<div data="[object Object],[object Object],[object Object]" field="roomCount" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 866px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">0</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 100px; left: 1782px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 100px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<i class="fa fa-edit" data-tip="Edit Facility"></i>
<i class="fa fa-trash-o " data-tip="Delete Facility"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="" style="left: 0px; height: 60px;"></div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 1882px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
例如我需要 AutomationFacility 9341.0 行中的编辑图标选择器。这个元素是在我的测试中创建的,然后我需要点击它的 "Edit" 图标。在这种情况下,我永远不知道元素的位置。
提供的 HTML 编辑图标位于第 183 行
我试图通过这样的方式找到它:
$(byXpath("//*[text()='"+facilityName+"']/i[@class='fa fa-edit']")).click();
但它不起作用,我收到错误消息说选择器不正确。
编辑您认为不在一个 div 中的图标和文本,这是您的 html 模式:
div
div
text
div
div
text
div
div
edit icon you mean
div
div
我尝试使用 contains
和 preceding-sibling
,像这样:
facilityName = "AutomationFacility 1249.0";
$(byXpath("//*[contains(@class,'fixedDataTableCell') and ./preceding-sibling::*[contains(@class,'fixedDataTableCell')]//div[contains(text(),'"+facilityName+"')]]//i[@class='fa fa-edit']")).click();
尝试按预期更改 facilityName
的值。
您可以使用 descendant XPath axis and contains() 函数组合,例如:
//*[contains(text(), 'AutomationFacility')]/descendant::i[@data-tip='Edit Facility']
参考文献:
今后考虑包括 HTML 页面代码,而不是图像,获得全面答案的机会会更高
要根据文本 Edit icon 找到 AutomationFacility 1249.0,您可以使用以下 :
使用XPATH
:
//div[@class='public_fixedDataTableCell_cellContent' and contains(.,'AutomationFacility 1249')]//following::i[@class='fa fa-edit' and @data-tip='Edit Facility']
注意:您需要为所需的elementToBeClickable.[=13 引入WebDriverWait =]
尝试使用下面给定的 xpath
//div[@class='fixedDataTableLayout_rowsContainer']//child::div[3]//child::div[1]//child::div[1]//child::div[1]//child::div[2]//child::div[1]//child::div[3]//child::div[1]//child::div[1]//child::div[1]//child::div[1]//child::i[@class='fa fa-edit']
我正在尝试访问动态 table 中特定元素的 "Edit" 图标。
HTML -
<div class="fixedDataTableLayout_rowsContainer" style="height: 323px; width: 1882px;">
<div class="fixedDataTableColumnResizerLineLayout_main fixedDataTableColumnResizerLineLayout_hiddenElem public_fixedDataTableColumnResizerLine_main" style="width: 0px; height: 325px; left: 0px;">
<div class="fixedDataTableColumnResizerLineLayout_mouseArea" style="height: 325px;"></div>
</div>
<div class="fixedDataTableRowLayout_rowWrapper" style="width: 1882px; height: 48px; z-index: 1; left: 0px; top: 0px;">
<div class="fixedDataTableRowLayout_main public_fixedDataTableRow_main fixedDataTableLayout_header public_fixedDataTable_header" style="width: 1882px; height: 48px;">
<div class="fixedDataTableRowLayout_body">
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 48px; width: 0px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 48px; position: absolute; width: 0px; z-index: 2; left: 0px; top: 0px;"></div>
</div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 48px; width: 1882px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 48px; position: absolute; width: 1882px; z-index: 0; left: 0px; top: 0px;">
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 48px; width: 916px; left: 0px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell cell-header text-center" style="height: 48px; width: 916px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<div class="sort-by ">Facility
<i class="fa fa-sort-undefined" style="margin-left: 3px; position: absolute; top: -3px;"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 48px; width: 866px; left: 916px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell cell-header text-center" style="height: 48px; width: 866px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<div class="sort-by "># of rooms
<i class="fa fa-sort-undefined" style="margin-left: 3px; position: absolute; top: -3px;"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 48px; width: 100px; left: 1782px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1" style="height: 48px; width: 100px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="" style="left: 0px; height: 48px;"></div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 48px; width: 0px; left: 1882px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 48px; position: absolute; width: 0px; z-index: 2; left: 0px; top: 0px;"></div>
</div>
</div>
</div>
</div>
<div>
<div class="fixedDataTableRowLayout_rowWrapper" style="width: 1882px; height: 60px; z-index: 0; transform: translate3d(0px, 48px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableRowLayout_main public_fixedDataTableRow_main public_fixedDataTableRow_even public_fixedDataTable_bodyRow" style="width: 1882px; height: 60px;">
<div class="fixedDataTableRowLayout_body">
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 1882px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 1882px; z-index: 0; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 916px; left: 0px;">
<div data="[object Object],[object Object],[object Object]" field="name" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell undefined" style="height: 60px; width: 916px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">uitestsfacility</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 866px; left: 916px;">
<div data="[object Object],[object Object],[object Object]" field="roomCount" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 866px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">1</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 100px; left: 1782px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 100px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<i class="fa fa-edit" data-tip="Edit Facility"></i>
<i class="fa fa-trash-o disabled" data-tip="Cannot be deleted due to rooms or devices belonged to this facility"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="" style="left: 0px; height: 60px;"></div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 1882px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableRowLayout_rowWrapper" style="width: 1882px; height: 60px; z-index: 0; transform: translate3d(0px, 108px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableRowLayout_main public_fixedDataTableRow_main public_fixedDataTableRow_highlighted public_fixedDataTableRow_odd public_fixedDataTable_bodyRow" style="width: 1882px; height: 60px;">
<div class="fixedDataTableRowLayout_body">
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 1882px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 1882px; z-index: 0; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 916px; left: 0px;">
<div data="[object Object],[object Object],[object Object]" field="name" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell undefined" style="height: 60px; width: 916px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">testsearchfacility</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 866px; left: 916px;">
<div data="[object Object],[object Object],[object Object]" field="roomCount" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 866px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">1</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 100px; left: 1782px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 100px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<i class="fa fa-edit" data-tip="Edit Facility"></i>
<i class="fa fa-trash-o disabled" data-tip="Cannot be deleted due to rooms or devices belonged to this facility"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="" style="left: 0px; height: 60px;"></div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 1882px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableRowLayout_rowWrapper" style="width: 1882px; height: 60px; z-index: 0; transform: translate3d(0px, 168px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableRowLayout_main public_fixedDataTableRow_main public_fixedDataTableRow_even public_fixedDataTable_bodyRow fixedDataTableLayout_hasBottomBorder public_fixedDataTable_hasBottomBorder" style="width: 1882px; height: 60px;">
<div class="fixedDataTableRowLayout_body">
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 1882px; left: 0px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 1882px; z-index: 0; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;">
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 916px; left: 0px;">
<div data="[object Object],[object Object],[object Object]" field="name" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell undefined" style="height: 60px; width: 916px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">AutomationFacility 1249.0</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 866px; left: 916px;">
<div data="[object Object],[object Object],[object Object]" field="roomCount" class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 866px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">0</div>
</div>
</div>
</div>
</div>
<div class="fixedDataTableCellLayout_main public_fixedDataTableCell_main" style="height: 60px; width: 100px; left: 1782px;">
<div class="fixedDataTableCellLayout_wrap1 public_fixedDataTableCell_wrap1 text-cell text-center" style="height: 60px; width: 100px;">
<div class="fixedDataTableCellLayout_wrap2 public_fixedDataTableCell_wrap2">
<div class="fixedDataTableCellLayout_wrap3 public_fixedDataTableCell_wrap3">
<div class="public_fixedDataTableCell_cellContent">
<i class="fa fa-edit" data-tip="Edit Facility"></i>
<i class="fa fa-trash-o " data-tip="Delete Facility"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="" style="left: 0px; height: 60px;"></div>
<div class="fixedDataTableCellGroupLayout_cellGroupWrapper" style="height: 60px; width: 0px; left: 1882px;">
<div class="fixedDataTableCellGroupLayout_cellGroup" style="height: 60px; position: absolute; width: 0px; z-index: 2; transform: translate3d(0px, 0px, 0px); backface-visibility: hidden;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
例如我需要 AutomationFacility 9341.0 行中的编辑图标选择器。这个元素是在我的测试中创建的,然后我需要点击它的 "Edit" 图标。在这种情况下,我永远不知道元素的位置。
提供的 HTML 编辑图标位于第 183 行 我试图通过这样的方式找到它:
$(byXpath("//*[text()='"+facilityName+"']/i[@class='fa fa-edit']")).click();
但它不起作用,我收到错误消息说选择器不正确。
编辑您认为不在一个 div 中的图标和文本,这是您的 html 模式:
div
div
text
div
div
text
div
div
edit icon you mean
div
div
我尝试使用 contains
和 preceding-sibling
,像这样:
facilityName = "AutomationFacility 1249.0";
$(byXpath("//*[contains(@class,'fixedDataTableCell') and ./preceding-sibling::*[contains(@class,'fixedDataTableCell')]//div[contains(text(),'"+facilityName+"')]]//i[@class='fa fa-edit']")).click();
尝试按预期更改 facilityName
的值。
您可以使用 descendant XPath axis and contains() 函数组合,例如:
//*[contains(text(), 'AutomationFacility')]/descendant::i[@data-tip='Edit Facility']
参考文献:
今后考虑包括 HTML 页面代码,而不是图像,获得全面答案的机会会更高
要根据文本 Edit icon 找到 AutomationFacility 1249.0,您可以使用以下
使用
XPATH
://div[@class='public_fixedDataTableCell_cellContent' and contains(.,'AutomationFacility 1249')]//following::i[@class='fa fa-edit' and @data-tip='Edit Facility']
注意:您需要为所需的elementToBeClickable.[=13 引入WebDriverWait =]
尝试使用下面给定的 xpath
//div[@class='fixedDataTableLayout_rowsContainer']//child::div[3]//child::div[1]//child::div[1]//child::div[1]//child::div[2]//child::div[1]//child::div[3]//child::div[1]//child::div[1]//child::div[1]//child::div[1]//child::i[@class='fa fa-edit']