硒 IDE - verifyOrdered

Selenium IDE - verifyOrdered

<div class="languageContainer">
  <p class="flag fltlft" style="margin-right: 20px;">
    <a class="color4 engflag-in lang01 notranslate active" href="#" data-placement="0" data-lang="English">English</a>
  </p>
  <p class="flag fltlft">
    <a class="color4 lang01 notranslate spanishflag-in current" href="#" data-placement="3" data-lang="Spanish">Español</a>
  </p>
</div>

使用 XPath //div[@class='languageContainer']/p/a。 我们能够找到这两个链接。我需要使用 verifyordered 验证这两个元素的顺序。但是当我像这样在 Selenium IDE 中使用 verifyOrdered 进行验证时:

verifyOrdered | //div[@class='languageContainer']/p/a[text()="English"] | //div[@class='languageContainer']/p/a[text()="Español"]

在日志中给出 [error] false

尽管根据我们的 XPath,下一个类似英语的元素是 Espanol。验证失败。有人可以取悦我吗?

我认为问题在于您将远远落后于 dom。 A 元素不是同一 parents 的兄弟姐妹。你实际上需要找到两个 P (with class "flag fltlft")

所以这会起作用:

<tr>
    <td>verifyOrdered</td>
    <td>//div[@class='languageContainer']/p[1]</td>
    <td>//div[@class='languageContainer']/p[2]</td>
</tr>

但这很明显:因为索引的 [1] 和 [2]。 所以要做到这一点,我们需要 select 具有我们想要的 children A 标签的 P 标签。变化是微妙的:

<tr>
    <td>verifyOrdered</td>
    <td>//div[@class='languageContainer']/p[a[text()=&quot;English&quot;]]</td>
    <td>//div[@class='languageContainer']/p[a[text()=&quot;Español&quot;]]</td>
</tr>

但是,如果您使用 IDE 荧光笔,您会发现您现在 select 使用 P 标签而不是 A 标签,并且 verifyOrdered 现在将为您工作!

仅供参考 -> 有关 select 元素基于 child 的更多信息可以在此处找到:XPath to select element based on childs child value