【发布时间】:2019-09-06 12:01:06
【问题描述】:
我有一个表格,其中每一行都有一个下载链接,其中包含(部分)自动生成的 id 元素。原因是实际的 href 元素总是“#”,所以 id 将下载分开。
我需要在 td.id 中找到该 id 元素的名称。即:我知道表格行有一个id元素,而且我知道部分名称,我需要得到确切的名称。
我一次访问每一行,所以我一次只需要查看一个 td。无需查看整个表格。
当我知道名称时,我就知道如何找到一个元素。但是在只知道类型的情况下找到元素是另一回事。
...
<tr>
<td class="journalTable-journalPost"
<a class="htext-small" href="#" id="downloadJournalPost-345">Download</a>
</td>
</tr>
<tr>
<td class="journalTable-journalPost"
<a class="htext-small" href="#" id="downloadJournalPost-346">Download</a>
</td>
</tr>
...
我在 webdriver 中找不到任何可以让我按类型查找元素的方法。
部分名称会起作用,因为 id 的名称为“downloadJournalPost-xxx”,其中只有 xxx 发生变化。但是链接文本是我能找到的唯一值,它可以让我搜索部分匹配。
编辑:更完整的标记。
<td class="journalTable-journalpost">
<span class="hb-tekst--sekundar">In <!----><est-ikon class="ng-star-inserted">
<div aria-hidden="true" class="hb-ikon hb-ikon--pil3-inn ">
<svg focusable="false">
<use xlink:href="#ikon-pil3-inn"></use>
</svg>
</div></est-ikon><!----></span>
<span class="hb-tekst--mellomTittel hb-avstandIngen"> Application and attachments</span>
<a class="hb-tekst--liten" href="#" id="lastNedJournalPost-2892">Download journal post</a>
</td>
【问题讨论】:
-
你说的到底是什么意思...我只知道类型是另一回事...?这两个元素看起来很相似?表中有多少行/列?用更多的父元素更新 HTML
-
我不确定更多相同的代码会有什么帮助?元素不相似。在此示例中,一行具有 id="downloadJournalPost-345",下一行具有 id="downloadJournalPost.346"。对于每一行,我需要获取 id 的名称。我不需要元素的联系方式。
-
是的,因为您需要获取我们需要首先识别元素的元素的
id(它是动态的)。因此,我们需要知道所需元素的存在深度。因此,您需要使用更多的 HTML 更新 HTML,包括父元素以首先识别元素。 -
您在寻找所有
id属性吗?
标签: java selenium-webdriver xpath css-selectors java-stream