Selenium 测试查找显示是不是为无

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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 后面内置了相当复杂的逻辑,请看:

Element Displayedness

【讨论】:

谢谢!但是,当您说可见性时,您并不是指该元素是否存在于 DOM 中。我通常检查 display:none 元素总是在 DOM 中但没有显示。 @johndoe 当我谈到可见性时,我指的是perceptually visible to the human eye。要检查元素是否存在,通常会检查 selenium 是否可以找到元素(不抛出异常),或者使用 FindElements 并检查结果的大小是否大于 0。(例如:***.com/questions/7991522/…) @johndoe 好,看看答案是否值得接受。谢谢。

以上是关于Selenium 测试查找显示是不是为无的主要内容,如果未能解决你的问题,请参考以下文章

Selenium自动化测试框架-01

selenium结合docker构建分布式测试环境

selenium webdriver

软件测试6gkd

python+selenium自动化测试——CSS选择元素

python+selenium自动化测试——CSS选择元素