Selenium - 在另一个元素之后选择表中的元素

时间:2016-05-06 17:35:37

标签: html selenium

在网页的表格中,左侧有几个纯文本元素(文件名),还有几个文件的PDF超链接:

Red report     Download PDF
Blue report    Download PDF
Green report   Download PDF

有几个这样的页面,文件总是以相同的顺序排列。

Red report     Download PDF
Green report   Download PDF
Blue report    Download PDF

等。

我只需要Green report的pdf。使用find_element在页面中查找文本Green report很简单。我不知道该怎么做是将驱动程序集中在文本右侧的链接上。 xpath不起作用,因为它在页面之间有所不同,不幸的是,href中的pdf标题没有"绿色报告"或类似的东西 - 它只是一堆数字。

但是,link元素始终遵循html中的filename元素。我需要做的是告诉selenium:"找到文本Green report,然后点击该文本后html中出现的第一个链接。"

我看起来很高低,甚至不知道如何去做,所以我无法提供我尝试过的代码片段。

这是一个实际的例子:

<tr id="detailMainForm:j_idt922:0" class="rf-dt-r rf-dt-fst-r oddRow"><td id="detailMainForm:j_idt922:0:j_idt924" class="rf-dt-c" style="width:10%;">09.07.2015</td><td id="detailMainForm:j_idt922:0:j_idt927" class="rf-dt-c" style="width:50%;">Translation of the ISR</td><td id="detailMainForm:j_idt922:0:j_idt930" class="rf-dt-c" style="width:15%;"><a href="/search/docservicepdf_pct/id00000029896067/ETISR/WO2015102081.pdf">PDF (1p.)</a></td><td id="detailMainForm:j_idt922:0:j_idt935" class="rf-dt-c" style="width:25%;"><a href="/search/docservicepdf_pct/id00000029896067/ETISR/WO2015102081.pdf?download">PDF (1p.)</a>, <a href="/search/docservicepct_file/WOid00000029896067/ETISR/WO2015102081.zip">ZIP(XML + TIFFs)</a></td></tr>

Translation of the ISR是与#34;绿色报告&#34;相对应的文字。在我上面的例子中。

PDF (1p.)的第一个实例(恰好有两个 - 有时还有更多)对应于&#34;下载PDF。&#34;

1 个答案:

答案 0 :(得分:1)

此XPath返回包含.pdf href的链接元素,该行包含文本“ISR的翻译”:

//tr[td='Translation of the ISR']//a[contains(@href, '.pdf')]