gpt4 book ai didi

selenium - ImageTag 存在于 TR 中?

转载 作者:行者123 更新时间:2023-12-02 05:27:42 25 4
gpt4 key购买 nike

编辑:

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 并且在返回中我将期望该名称是否具有图像标签。

同样,如果我通过 TEST2TEST3 它应该返回 null 因为它没有图像标记以及 TEST1TEST4 确实有 Image 标记 的位置,因此它应该返回 true。

我尝试过类似的方法但没有成功:

string name = String.Format(".//td[contains(., \'{0}\')]/..//@src", "TEST1");
IWebElement element = driver.FindElement(By.XPath(name));

得到这个错误:在尝试上面的代码之后...

The xpath expression './/td[contains(., 'TEST1')]/..//@src' cannot be evaluated or does notresult in a 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即可

关于selenium - ImageTag 存在于 TR 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com