如何枚举表的第3列

时间:2015-08-13 14:06:58

标签: c# selenium xpath

我的表有3列。我想使用Selenium.IE来获取第3列的元素。但是我不知道有多少行。我保证至少有一行

[@id="content"]/table/tbody/tr[1]/th[3]/span
[@id="content"]/table/tbody/tr[2]/td[3]/span 
[@id="content"]/table/tbody/tr[3]/td[3]/span

我的Xpath如上所示。找到所有行中所有元素的推荐方法是什么?我应该使用" try-catch"一旦找不到Xpath,我就知道最后一个索引(和文本)

我正在使用C#和InternetExplorerDriverService

2 个答案:

答案 0 :(得分:1)

使用@ har07

中提到的Xpath
[@id="content"]/table/tbody/tr/td[3]/span

您可以使用findElements获取与xpath匹配的所有元素并迭代它们

ReadOnlyCollection<IWebElement> elements= driver.FindElements(By.XPath("[@id='content']/table/tbody/tr/td[3]/span"));

foreach(IWebElement element in elements)
{
   //do whatever with the element
}

答案 1 :(得分:1)

创建一个泛型函数来获取表并添加逻辑以获取行列表以及遍历行中单元格的能力。

现在,您可以通过选择并存储每行的特定CELL值来创建另一个列表来存储列的数据,方法是遍历行直到表的结尾。

返回列表将存储列的值。

实施例

<?php

echo $id;

$myfile = fopen("somename.txt", "w") or die("Unable to open file!");
$txt = 'Id is: '.$id;
fwrite($myfile, $txt);
fclose($myfile);