我有这样的选择元素:
<select id='mySelect'>
<option value=0>Monday</option>
<option value=1>Tuesday</option>
</select>
每当我使用 Protractor 时 isDisplayed()
属性来检查选项元素的可见性,它始终返回 true。
element.all(by.css('#mySelect option')).first().isDisplayed(); // always return true
无论单击选择元素,我都会收到此行为。理想情况下它应该只返回 true
如果我点击<select>
首先元素然后检查可见性。
有什么解决办法吗?
最佳答案
element(by.css('#mySelect')).isDisplayed();
不检查选项的可见性,它检查 <select>
的可见性元素。您需要定位 <option>
标签
element(by.css('#mySelect option')).isDisplayed();
并检查所有选项
var options = element.all(by.css('#mySelect option'));
options.each((option, index) => {
option.isDisplayed();
});
作为替代方案,您可以通过检查元素偏移量来检查可见性
var option = element(by.css('#mySelect option'));
var isDisplayed = option.offsetWidth > 0 && option.offsetHeight > 0;
关于javascript - Protractor :无论选择下拉列表的可见性如何,始终获取选择选项状态 "displayed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60089702/