java - 在 Selenium getattribute() 中同时使用文本和位置

标签 java html xpath selenium

我正在尝试使用 Selenium 为具有 ADF 生成树的网站构建测试框架。树最终结构为

<table>
<tr>
 <td>
  <div>
   <span>
    <a id="AN_ID" title="Expand" onclick="return false" href="#"></a>
   </span>
   <img>
   <img>
   <span>SOME_TEXT</ span>
  </div>
 </td>
</tr>
<tr></tr>
<tr></tr>
</table>

我希望有一个 XPath 函数可以使用文本来查找 anchor 的 id,如下所示:

selenium.getAttribute("xpath=//span[text()='"+text+"']/preceding-sibling::span[1]/child::a@id");

调用函数时将文本输入到函数中的位置。当字符串不唯一时就会出现问题。所以我尝试在函数中添加一个位置,如下所示:

selenium.getAttribute("xpath=//span[text()='"+text+"']["+occurrence+"]/preceding-sibling::span[1]/child::a@id");

因此函数调用文本和字符串树中的出现。这是为了查找第一次出现的 ID,但无法找到给定字符串第二次出现的 ID。

我也试过用

[text()= "" and position()= ""] 

但这根本不起作用。

每个 anchor 都会生成一个新表,其中包含子级别的所有表行(与上面的结构相同),因此您最终会为树的每个子级别创建一个新表。

最佳答案

我相信事件应该发生在最后:

selenium.getAttribute("xpath=(//span[text()='"+text+"']/preceding-sibling::span[1]/child::a)["+occurrence+"]@id");

关于java - 在 Selenium getattribute() 中同时使用文本和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13343240/

相关文章:

java - JUnit 测试 Java 代码断言是否失败

javascript - 无法使用 semantic-ui 表进行表行选择

java - Android 通知打开最后一个 Activity 而不是正确的 Activity

java - Twitter4j 接口(interface)和类结构

html - Angular 2聊天框消息从下到上

html - CSS 帮我放置这些 div

html - XML 到 HTML : outputting literal child nodes

c# - 使用 Xpath 的 Xdocument

java - xpath 不返回任何值

java - 有没有办法测量 Java (Servlet) I/O 流量?