【问题标题】:Selenium Tests Find if Display is NoneSelenium 测试查找显示是否为无
【发布时间】:2015-07-23 20:36:05
【问题描述】:

如何判断元素显示是否为none?

目前,我正在使用IWebElement GetAttribute("Style") 方法来获取返回样式属性中所有内容的样式。然后我可以解析字符串并找到display:none

我只是想知道是否有更简单和更清洁的方法?

【问题讨论】:

    标签: c# testing selenium selenium-webdriver


    【解决方案1】:

    你也可以执行javascript并获取一个元素的.style.display值:

    IJavaScriptExecutor js = driver as IJavaScriptExecutor;
    string display = (string)js.ExecuteScript("return arguments[0].style.display;", element);
    

    如果您只是想测试一个元素的可见性 - 那么不要重新发明轮子并让 webdriver 处理它。有Displayed属性:

    element.Displayed
    

    仅供参考,Displayed webdriver 后面内置了相当复杂的逻辑,请看:

    【讨论】:

    • 谢谢!但是,当您说可见性时,您并不是指该元素是否存在于 DOM 中。我通常检查 display:none 元素总是在 DOM 中但没有显示。
    • @johndoe 当我谈到可见性时,我指的是perceptually visible to the human eye。要检查元素是否存在,通常会检查 selenium 是否可以找到元素(不抛出异常),或者使用 FindElements 并检查结果的大小是否大于 0。(例如:stackoverflow.com/questions/7991522/…
    • @johndoe 好,看看答案是否值得接受。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2019-03-26
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多