选择框选项是可见的还是隐藏的?
Is a selectbox option visible or hidden?
我要用 nightwatch/selenium 测试一个小的下拉选择框。
在测试时,我发现选择框的选项似乎是可见的(对于测试运行器),即使它没有被点击。
我在 HTML 方面的技能很少,因此我不确定这是默认行为还是我的测试有问题。
测试代码:
var urlToOptionsPage ='chrome-extension://dafanlbggefkfnbekjceijjhgcancpik/html/options.html';
module.exports = {
'[Options Page UI] - project list': function(browser) {
browser
.url(urlToOptionsPage)
.pause(500)
.waitForElementVisible('#projects', 5000)
.assert.value('#projects', 'BWK')
//.click('#projects')
.waitForElementVisible('#projects > option:nth-child(1)', 5000)
.end()
}
};
HTML:
<select name="projects" id="projects">
<option value="BWK">BWK</option>
<option value="DMG">DMG</option>
<option value="ABC">ABC</option>
</select>
测试结果:
✔ Element <#projects> was visible after 52 milliseconds.
✔ Testing if value of <#projects> equals: "BWK".
✔ Element <#projects > option:nth-child(1)> was visible after 35 milliseconds.
在 chrome 中不是,但至少在 Firefox 中是。所以我的回答是;它的浏览器依赖。您可以通过 运行:
进行测试
// jQuery required
var optionsVisible = $('option').eq(0).is(':visible');
alert(optionsVisible); //alert if options are visible or not
或者看看here.
我要用 nightwatch/selenium 测试一个小的下拉选择框。 在测试时,我发现选择框的选项似乎是可见的(对于测试运行器),即使它没有被点击。 我在 HTML 方面的技能很少,因此我不确定这是默认行为还是我的测试有问题。
测试代码:
var urlToOptionsPage ='chrome-extension://dafanlbggefkfnbekjceijjhgcancpik/html/options.html';
module.exports = {
'[Options Page UI] - project list': function(browser) {
browser
.url(urlToOptionsPage)
.pause(500)
.waitForElementVisible('#projects', 5000)
.assert.value('#projects', 'BWK')
//.click('#projects')
.waitForElementVisible('#projects > option:nth-child(1)', 5000)
.end()
}
};
HTML:
<select name="projects" id="projects">
<option value="BWK">BWK</option>
<option value="DMG">DMG</option>
<option value="ABC">ABC</option>
</select>
测试结果:
✔ Element <#projects> was visible after 52 milliseconds.
✔ Testing if value of <#projects> equals: "BWK".
✔ Element <#projects > option:nth-child(1)> was visible after 35 milliseconds.
在 chrome 中不是,但至少在 Firefox 中是。所以我的回答是;它的浏览器依赖。您可以通过 运行:
进行测试// jQuery required
var optionsVisible = $('option').eq(0).is(':visible');
alert(optionsVisible); //alert if options are visible or not
或者看看here.