找出在Robot Framework中有用的XPath

d-b*_*d-b 1 html xpath robotframework

我需要访问看起来像一个表的东西的第一个单元格(但有点奇怪 - 第一列的DIV在结构上"高于"同一行上的其余单元格).

<div class="slick-viewport slick-viewport-top slick-viewport-left" tabindex="0" hidefocus="" style="overflow: auto; width: 100%; height: 513px;">
   <div class="grid-canvas grid-canvas-top grid-canvas-left" tabindex="0" hidefocus="" style="height: 825px; width: 1336px;" unselectable="on">
      <div class="ui-widget-content slick-row  even lastClicked selected" role="row" row="0" style="top:0px;">
         <div class="slick-cell l0 r0  uppercase selected" aria-describedby="inforDataGrid160360C1" tabindex="-1" role="gridcell"><span style="float: left;display:inline-block;height:1px;width:0px"></span><button type="button" class="tree-expand inforIconButton  closed"><span></span></button><span>ABC</span></div>
         <div class="slick-cell l1 r1  uppercase selected" aria-describedby="inforDataGrid160360C2" tabindex="-1" role="gridcell">DEF</div>
         <div class="slick-cell l2 r2  uppercase selected" aria-describedby="inforDataGrid160360C3" tabindex="-1" role="gridcell">GHI</div>
      </div>
      <div class="ui-widget-content slick-row  odd" role="row" row="1" style="top:25px;">
         <div class="slick-cell l0 r0  uppercase" aria-describedby="inforDataGrid160360C1" tabindex="-1" role="gridcell"><span style="float: left;display:inline-block;height:1px;width:0px"></span><button type="button" class="tree-expand inforIconButton  closed"><span></span></button><span>JKL</span></div>
Run Code Online (Sandbox Code Playgroud)

我正在寻找有用的东西,指出ABC.正如人们可以看到上面的div具有row="0"似乎合理使用的属性.与ABC中的div有类l0 r0这似乎也是有用的(但什么是略微与直觉相反的是,类在同一行的下一个单元-包含DEF -不l0 r1l1 r0之类的东西,而是l1 r1).

此外,id="contentBody"我希望包括许多DIV级别.

所以像//contentBody/*/row="0"/class="l0 r0".

我该如何构建这个XPath?

(DEF是第一行的第二个单元格/列,GHI是第一行的第三个单元格/列.JKL是第二行的第一个单元格/列.我包含了这个,让您了解这个表格如何被建造).

And*_*son 6

这个应该返回要求div:

//div[@id="contentBody"]//div[@row="0"]/div[contains(@class, "l0") and contains(@class, "r0")]
Run Code Online (Sandbox Code Playgroud)

CSS选择器中的相同:

div#contentBody div[row="0"]>div.l0.r0
Run Code Online (Sandbox Code Playgroud)

您可以使用选择器备忘单来创建XPath/CSS选择器以及教程,文档以便深入理解