Selenium验证元素是否是Java中另一个元素的子元素

时间:2016-09-16 18:38:00

标签: java html selenium dom

我正在尝试导航的页面中有一系列嵌套元素。下面的html是简化版本:

<div>
  <h1 id="This is an id">The header is an identifier</h1>
  <table>
      <tr></tr>
      <tr>
         <ul>
           <li>
             <a>
               <span>This my target</span>
  </table>
</div>
        
        <h1>Also text</h1>
        <a>
        <span>This target has the same text<span>
         

顶级div的结构非常显着。我试图找到一个使用xpath和文本包含的元素。但是,我无法验证目标确实是正确div中的目标。如果我不知道每次都知道它的确切布局,有什么办法可以按比例缩放dom树吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用CSS选择器进行>操作。

示例:要访问"This my target",请使用 driver.findElement(By.cssSelector("li>a>span"));

答案 1 :(得分:0)

为了检查div中的文本,您可以构成如下路径:

//div//*[contains(text(), 'my text')]

如果您需要检查特定div内部,则应首先识别div。

例如,如果div具有类似class="my_class"的属性,则使用:

//div[@class='my_class']//*[contains(text(), 'my text')]

您可以在w3schools xpath syntax

上找到更多路径示例