编辑:
public bool getImage()
{
IWebElement table = driver.FindElement(By.Id("DIV_ID_1"));
string name = String.Format("//*[contains(text(), \'{0}\')]", 'TEST1');
IWebElement element = table.FindElement(By.XPath(name));
IWebElement parent = element.FindElement(By.XPath(".."));
try
{
IWebElement image = element.FindElement(By.XPath("//img"));
}
catch (NoSuchElementException e)
{
return false;
}
return true;
}
我怎么知道TEST1
是否有Image
?在下面的 html 源代码中,我有 tr,在 tr 内我有 td,有些 tr 可能有图像标签,有些可能没有
因此,我将传递名称作为示例:TEST1
并且在返回时,我会期待名称是否具有 Image 标签。
再一次,如果我通过TEST2
并且TEST3
它应该return
null
因为它没有图像标签并且在哪里TEST1
并且TEST4
确实有Image tag
因此它应该返回我真实。
我尝试了这样的事情但没有奏效:
string name = String.Format(".//td[contains(., \'{0}\')]/..//@src", "TEST1");
IWebElement element = driver.FindElement(By.XPath(name));
得到这个错误:在尝试了上面的代码之后......
xpath 表达式 './/td[contains(., 'TEST1')]/..//@src' 无法计算或不会产生 WebElement
下面是html源代码
<div id="DIV_ID_1">
<table id="TBLID1">
<tr>
<td>
TEST1
</td>
<td>
<img id="ctl00" src="../App_Themes/Default/images/phone.gif" />
</td>
</tr>
<tr>
<td>
TEST2
</td>
</tr>
<tr>
<td>
TEST3
</td>
</tr>
<tr>
<td>
TEST4
</td>
<td>
<img id="ctl02" src="../App_Themes/Default/images/phone.gif" />
</td>
</tr>
</table>
</div>