使用WebDriver的图像(非元素)可见性

时间:2012-07-24 09:15:40

标签: c# html image webdriver

我有一个可点击的图片,它在FireFox中不可见。我的意思是,没有图像,但是有一个元素(它是可点击的)。 FindElement(by).Displayed 返回true但仍然没有图片。 问题是如何检查,此图像是否可见?

另外,我在html标题中发现了一个错误(原因,为什么图像不可见),也许有办法用html标题检查图像的存在?

public bool IsFileIconDisplayed()
        {
            return IsElementDisplayed(By.XPath("//*[@class='SomeClass']/img"));

        }

protected bool IsElementDisplayed(By by)
        {
            return FindElement(by).Displayed;
        }

2 个答案:

答案 0 :(得分:4)

图像的样式是否将宽度和高度设置为预设值?

如果不是,您可以在Javascript中查询图像元素的客户端宽度和高度属性。

document.getElementById(<webElement>).getClientRects()[0].width
document.getElementById(<webElement>).getClientRects()[0].height

或只是

document.getElementById(<webElement>).naturalWidth

使用JavascriptExecutor,您应该能够将这些值绘制到Java / C#代码中,并根据宽度/高度来加载/未加载图像。

答案 1 :(得分:0)

此主题包含有关如何检查图像可见性的重要信息(最关注Dave Hunt提供的答案)

How to check URL for 404 using Selenium WebDriver?