【发布时间】:2015-07-23 20:36:05
【问题描述】:
如何判断元素显示是否为none?
目前,我正在使用IWebElement GetAttribute("Style") 方法来获取返回样式属性中所有内容的样式。然后我可以解析字符串并找到display:none。
我只是想知道是否有更简单和更清洁的方法?
【问题讨论】:
标签: c# testing selenium selenium-webdriver
如何判断元素显示是否为none?
目前,我正在使用IWebElement GetAttribute("Style") 方法来获取返回样式属性中所有内容的样式。然后我可以解析字符串并找到display:none。
我只是想知道是否有更简单和更清洁的方法?
【问题讨论】:
标签: c# testing selenium selenium-webdriver
你也可以执行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 后面内置了相当复杂的逻辑,请看:
【讨论】:
perceptually visible to the human eye。要检查元素是否存在,通常会检查 selenium 是否可以找到元素(不抛出异常),或者使用 FindElements 并检查结果的大小是否大于 0。(例如:stackoverflow.com/questions/7991522/…)