2016-11-18 53 views
1

enter image description here我需要点击数据表的第一行。但是这个数据表会根据用户的不同而不同。我怎样才能为这些动态元素创建xpath?如何为动态数据表创建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> 

在这里,我需要为第一element.its attibutes创建XPath是:

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

如何为这个元素创建的XPath这里时,我与其他用户登录的所有元素会有所不同? 。

回答

2

如果你总是想sel等第一行,使用下面的xpath:

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

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

1

您可以使用下面的XPath来选择第一h3

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

如果从主格,则需要为第一div

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

如果你只需要冷杉然后你可以使用:

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

当我使用上面的xpaths时,它正在选择整个表格(即选择期间5,期间3,期间2,期间1等)。因为所有的表格都放在相同的标题和div下。 –

+0

是的,但你的find方法将只返回找到的第一个元素。你有找到所有元素或找到一个元素的方法,第二个元素将只返回一个元素,第一个找到。 – lauda