选择框选项是可见的还是隐藏的?

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.