如何为动态数据表创建xpath?

时间:2016-11-18 07:42:31

标签: html xml xpath selenium-webdriver webdriver

enter image description here我需要点击数据表的第一行。但是这个数据表总是会根据用户的不同而有所不同。如何为这些动态元素创建xpath?

<div id="periodAccordion">
<h3 id="p5-header" onclick="periodOnClick('5','2016')">Period 5</h3>
<div id="p5">
<h3 id="p3-header" onclick="periodOnClick('3','2016')">Period 3</h3>
<div id="p3">
<h3 id="p2-header" onclick="periodOnClick('2','2016')">Period 2</h3>
<div id="p2">
<h3 id="p1-header" onclick="periodOnClick('1','2016')">Period 1</h3>
<div id="p1">
<h3 id="p10-header" onclick="periodOnClick('10','2015')">Period 10</h3>
<div id="p10">
<h3 id="p8-header" onclick="periodOnClick('8','2015')">Period 8</h3>
<div id="p8">
</div>

这里我需要为第一个元素创建xpath。attibutes是:

<h3 id="p5-header" onclick="periodOnClick('5','2016')">Period 5</h3>
<div id="p5">

如何为此元素创建xpath?当我与其他用户登录时,所有元素都会有所不同。

2 个答案:

答案 0 :(得分:2)

如果您总是想要选择第一行,请使用以下xpath:

//h3[contains(@id,'header') and contains(@onclick,'periodOnClick') ][1]

希望这会对你有所帮助,让我知道会发生什么。

答案 1 :(得分:1)

您可以使用以下xpath选择第一个h3

//div[@id='periodAccordion']/h3

如果你需要主div中的第一个div,那么:

//div[@id='periodAccordion']/div

如果您只需要第一个,那么您可以使用:

//div[@id='periodAccordion']/h3[1]