Selenium 在id不存在时查找标签文本

Selenium 在id不存在时查找标签文本,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我正在使用selenium web驱动程序在以下html标记中查找标签文本: <tr id="row" style="display: inline; padding-left: 10px; padding-right: 10px;"> <td> <table width="776" cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td align="right"

我正在使用selenium web驱动程序在以下html标记中查找标签文本:

<tr id="row" style="display: inline; padding-left: 10px; padding-right: 10px;">
<td>
<table width="776" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td align="right">&nbsp;</td>
<td>&nbsp;</td>
<td align="right">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="92" height="25" align="left">**Label Text&nbsp**;</td>
<td width="227">
<td width="170" align="left">">**Label Text 2&nbsp**;</td>
</td>
</tr>

**标签文本**;
“>**标签文本2**;
我使用了driver.findElement(By.id(“row”)).getText(),但它没有检索到任何内容。
如何让它打印标签文本。谢谢。

要访问“标签文本”单元格,您需要搜索单元格本身,而不是搜索包含它们的行。如果您使用WatiN,情况就是这样。 查找具有“标签文本”的任何元素的另一种方法是:

ReadOnlyCollection<IWebElement> temp = driver.FindElements(By.XPath("//td[@text='Label Text'])); 
ReadOnlyCollection temp=driver.FindElements(By.XPath(“//td[@text='Label text']);
如果示例中的“标签文本”是不同文本的占位符,这将变得很棘手,您可以尝试抓住包含单元格的tableRow中的每个单元格。但是,只有第一行似乎有id。希望这有帮助

编辑: 或者,如果你确切知道你想要哪个单元格并且它有一个唯一的大小(就像你的例子),你可以尝试找到所有单元格,然后手动搜索它们的宽度。如: foreach(临时单元格中的IWebElement温度) { 如果(温度大小宽度==170) 临时文本;
}

使用方法
getText

driver.findElement(By.xpath("")).getText();
我的看法:

List<WebElement> list;
list = driver.findElements(By.xpath("id('row')//td[string-length(text()) > 1]"));

如果你想要得到的所有元素都有一个共同点,那就是你的例子中可以看到的
align='left'
部分。

仅供参考-你的例子中缺少结束语。
List<WebElement> list;
list = driver.findElements(By.xpath("id('row')//td[string-length(text()) > 1]"));
list = driver.findElements(By.xpath("id('row')//td[@align='left']"));