识别Selenium自动化的页面元素

时间:2012-06-17 09:00:36

标签: selenium webdriver

我有一个受测试的应用程序,它具有如下所示的表格结构:

<table width="100%" cellspacing="0" cellpadding="0" border="0" style="background-color: White">
<tbody>
<tr>
<td id="lefthandcol" class="b24-lefthandcol" valign="top" style="width: 130px !important">
<td style="height: 400px; width: 5px">
<td style="height: 400px; width: 5px">
<td valign="top">
<div id="ctl00_ContentPlaceHolder1_MiddlePanel">
<div id="DestinationDiv"></div>
<table>
</td>
<td style="height: 400px; width: 5px">
<td style="height: 400px; width: 5px">
<td width="225" valign="top" align="right" style="background-color: White;">
</tr>
</tbody>
</table>

问题是如何识别此表,因为它没有id

在这种情况下,人们通常会做些什么?

2 个答案:

答案 0 :(得分:2)

您应该找到任何唯一的父子关系,并在CSS或Xpath的帮助下编写:

IWebElement table = driver.FindElement(By.XPath("//table[descendant::*[@id='ctl00_ContentPlaceHolder1_MiddlePanel']]"));

因此,将找到带有id=ctl00_ContentPlaceHolder1_MiddlePanel的后代元素的表。

答案 1 :(得分:1)

如果id不可用,则使用xpath或css。如果你不能自己编写它们,那么你可以使用firebug和xpath checker之类的工具。