当前位置: 首页 > 面试题库 >

ImageTag是否存在于TR中?

易弘亮
2023-03-14
问题内容

编辑:

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标签。

再次,如果我通过TEST2TEST3它应该return
null,因为它不具有图像标记及其所在的TEST1TEST4确实有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对象中是否存在“键”。有办法做到这一点吗?数据可以是一个任意子分支 例子: