2012-07-24 68 views
4

我有一个可点击的图像,它在FireFox中不可见。我的意思是,没有图像,但有一个元素(它是可点击的)。 FindElement(by).Displayed returns true,but still still no image。 问题是我该如何检查,这个图像是否可见?WebDriver的图像(不是元素)可见性

此外,我发现在HTML标题错误(原因,为什么图像不可见),也许有一种方法来检查使用HTML标题图像存在?

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

     } 

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

发布您的代码在这里 – 2012-07-24 09:22:59

+0

那么是什么使得它隐藏/消失/显示?它是否应用了任何CSS?它什么时候隐藏起来? (即在页面加载时,当你将鼠标悬停在它上面时,是什么?) – Arran 2012-07-24 16:04:45

+0

我的问题的答案在下面由Ashwin Prabhu给出,谢谢。 – 2012-07-25 09:09:50

回答

4

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

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

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

或只是

document.getElementById(<webElement>).naturalWidth 

随着JavascriptExecutor你应该能够将这些值绘制到Java/C#代码,并得出结论图像加载/不是基于它的宽度/高度加载。

+0

没有好的,宽度和高度> 0,所以测试认为图像显示。 – 2012-07-24 12:03:03

+0

这是预期的。不要与0进行比较。浏览器有一个回退图像,它的固定宽度和高度通常小于100 x 100。排除这种情况。它应该很容易。 – 2012-07-24 13:40:14

+0

我试过在chrome(显示图像的地方)和FireFox(其中图像未显示)中的document.getElementsByClassName(“Class”)[1] .children [0] .width ** ,结果是相同的 - 60px。 我在做什么错? – 2012-07-24 13:55:07

相关问题