编辑:
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>
因此,我将其分解为几个步骤。
首先获取您的元素:
WebElement element = driver.findElement(By.xpath("//*[contains(text(), 'TEST1')]"));
然后获取父元素:
WebElement parent = element.findElement(By.xpath(".."));
然后检查父元素是否有<img>
标签:
Try
{
WebElement image = parent.findElement(By.xpath("//img"));
}
catch (NoSuchElementException e)
{
System.out.println("Did not find an image");
}
我将其包装在一个函数中,然后可以传递文本以查找图像并返回元素(如果存在)。
就像是:
public WebElement getImage(String innerText)
然后只需传递TEST1或TEST2
问题内容: 如何检查JavaScript对象或数组中是否存在特定键? 如果密钥不存在,而我尝试访问它,它将返回false吗?还是抛出错误? 问题答案: 检查不确定性不是测试密钥是否存在的准确方法。如果密钥存在但值实际上是怎么办? 您应该改为使用运算符: 如果要检查密钥是否不存在,请记住使用括号: 或者,如果您要特别测试对象实例的属性(而不是继承的属性),请使用: 有关和的方法之间的性能比较,关键是
问题内容: 我知道这与这个问题相似,但是我在C#中将SQL Server CE 3.5与WinForms项目一起使用。如何确定表是否存在?我知道虽然不支持该关键字。CE中是否存在information_schema,可以在其中查询它?谢谢。 问题答案: 是的,它确实存在:
has 确定数据是否存在has($table, $where) table [string] 表名. where [array] WHERE 条件.has($table, $join, $where) table [string] 表名. join [array] 多表查询. where [array] WHERE条件.Return: [boolean] 返回 TRUE 或者 FALSE.可用于做
has 确定数据是否存在has($table, $where) table [string] 表名. where [array] WHERE 条件.has($table, $join, $where) table [string] 表名. join [array] 多表查询. where [array] WHERE条件.Return: [boolean] 返回 TRUE 或者 FALSE.可用于做
问题内容: 如何检查python脚本中是否存在程序? 假设您要检查或是否可用。我们假设他们应该在路上。 最好看到一个多平台解决方案,但就目前而言,Linux足够了。 提示: 运行命令并检查返回代码并不总是足够的,因为某些工具即使尝试也会返回非0结果。 检查命令时,屏幕上不应显示任何内容 另外,我希望能找到更通用的解决方案,例如 问题答案: import subprocess import os
我想检查JS对象中是否存在“键”。有办法做到这一点吗?数据可以是一个任意子分支 例子: