WebElement,isDisplayed无法正常工作

时间:2014-07-16 14:24:31

标签: selenium-webdriver

所以,我试着打电话给#is; isDisplayed' WebElement的方法。该元素的父级具有css属性' width'等于' 0px'并且'溢出'等于隐藏'当然,元素本身是不可见的,但方法是显示的'返回true。它必须返回false!如何将此错误发送给开发人员?

<label>
    <span class="before"> // width: 0px; overflow:hidden;
        &nbsp;
        <span>Yes</span> // invisible element
    </span>
    <i></i>
    <span class="after">
        <span>No</span>
    </span>
</label>

java代码:

WebElement sw = node.findElement(By.xpath(".//*[text()='Yes']")); // node is selected by other query
sw.isDisplayed() //result is true

1 个答案:

答案 0 :(得分:0)

您可以使用javascript执行程序来确定元素是否可见,这将考虑CSS样式。你需要能够为元素提供一个可靠的CSS选择器

C#解决方案......

string script = "return $('.before span').is(':visible')"

var executor = WebDriver as IJavaScriptExecutor;
var result = executor.ExecuteScript(script);