java - 无法使用 id 和 rel 属性值定位元素

标签 java selenium xpath selenium-webdriver css-selectors

我正在尝试定位一个元素并验证字段中的数据。在本例中我需要检索并检查帐号 101

HTML:

<table class="headerInfo">
<tbody>
<tr>
<tr>
<td>
<table width="100%">
<tbody>
<tr>
<td width="25%" valign="top" align="left">
<table width="100%">
<tbody>
<tr>
<td class="label" valign="middle" style="">Account Number</td>
<td></td>
<td id="PAULABU1484216235454TabGroupHeaderTabList082588e97-f753-479d-8789-a34555053938" class="field" valign="top" align="left" style="">
<a rel="PAULABU1484216235454TabGroupHeaderTabList082588e97-f753-479d-8789-a34555053938DropMenu">101</a>
</td>
</tr>

我已尝试以下操作,但收到“NoSuchElementException”错误:

driver.findElement(By.id("PAULABU1484216235454TabGroupHeaderTabList082588e97-f753-479d-8789-a34555053938"));

我也尝试了以下方法(但我得到了同样的错误:

driver.findElement(By.cssSelector("a[rel='PAULABU1484216235454TabGroupHeaderTabList082588e97-f753-479d-8789-a34555053938DropMenu']"));

当我复制 CSS 路径时:

html body form div#tabHeader table tbody tr td table.headerInfo tbody tr td table tbody tr td table tbody tr td#PAULABU1484216235454TabGroupHeaderTabList082588e97-f753-479d-8789-a34555053938.field a

当我复制 Xpath 时:

/html/body/form/div[3]/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr[1]/td[3]/a

我希望在不使用绝对路径的情况下找到元素。

最佳答案

Desire 元素的 idrel 属性值看起来是动态生成的,因此您无法使用它们进行定位。尝试使用一些不同的定位器,如下所示 xapth :-

.//tr[td[text() = 'Account Number']]//a

.//tr[td[text() = 'Account Number']]//a[contains(@rel, 'TabGroupHeaderTabList')]

关于java - 无法使用 id 和 rel 属性值定位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41612316/

相关文章:

java - 分析: Performance of ForkJoinPool

java - 如何使用 selenium webdriver 和 Java 从 kendo 下拉列表中选择一个选项

python - 使用 selenium (python) 选择满足条件的所有元素

类似 xpath 的 protobuf 消息查询

java - 在 log4j2 中创建自定义附加程序的首选方法是什么?

java - 架构 : Data Persistency , 搜索和推荐系统

c# - 等待输入只读属性消失

javascript - 我可以在 Puppeteer 的 page.type 上使用 XPath 表达式而不是 CSS 选择器吗?

java - 如何在不使用 for 循环的情况下转储 <WebElement> 列表的内容

java - PowerMock - 禁止构造函数但设置私有(private)最终字段