【问题标题】:Unable to locate an element using id and rel attribute value无法使用 id 和 rel 属性值定位元素
【发布时间】:2017-01-12 11:41:13
【问题描述】:

我正在尝试定位一个元素并验证该字段中的数据。在这种情况下我需要检索并检查帐号是 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

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

【问题讨论】:

  • 试试 [contains(text()='Account Number')] 然后得到'a'的文本
  • Desire 元素的 id 和 rel 属性值看起来是动态生成的,所以无法定位。使用一些不同的定位器

标签: java selenium xpath selenium-webdriver css-selectors


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-03-13
    • 1970-01-01
    • 2023-01-01
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多