Javascript Nightwatch 从选择框中选择选项
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/36020702/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Nightwatch to select option from select box
提问by Brown A
I am trying to use nightwatch.js to select an option from a select box.
我正在尝试使用 nightwatch.js 从选择框中选择一个选项。
I have the code:
我有代码:
this.browser.click('select[name="month"]')
.pause(1000)
.click('option[value="3"]')
.click('select[name="day"]')
.pause(1000)
.click('option[value="6"]')
.click('select[name="year"]')
.pause(1000)
.click('option[value="1989"]');
It selects the correct month, year on the page but not the day. Here's the HTML for the select box for the day:
它会在页面上选择正确的月份、年份,但不会选择日期。这是当天选择框的 HTML:
<select aria-label="Day" id="day" name="day" data-validatorGroup="bday" data-component="selectbox">
<option selected="selected" value="" aria-label="Date of birth">
Day</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
Does anyone know why its not selecting the proper day?
有谁知道为什么不选择合适的日子?
回答by Cees Timmerman
回答by 79E09796
The following syntax seems to be more reliable:
以下语法似乎更可靠:
.click('select[id="myselectbox"] option[value="somevalue"]')
回答by Raymond
You may try the following, it works for me.
您可以尝试以下方法,它对我有用。
<option value="2">2</option>
...
.setValue('select[id="day"]','2')
if you have different value than the text in your option
如果您的值与选项中的文本不同
e.g. <option value="123">abc</option>
例如 <option value="123">abc</option>
You do .setValue ('select[id="yourselectid"]','abc')
你做 .setValue ('select[id="yourselectid"]','abc')
回答by IceManSpy
If you want to do with Page Object, you have to use callback.
如果要处理 Page Object,则必须使用回调。
sectionInfo.click("@selectOwner",()=>{
sectionInfo.click("option[value='owner']");
});
回答by Dylan
.click("#selectid option:nth-child(1)")
This also works using class identifier -
这也适用于使用类标识符 -
e.g.
例如
.click(".selectclass option:nth-child(1)")
Setting the nth-child to 1 will choose the first item in the dropdown.
将 nth-child 设置为 1 将选择下拉列表中的第一项。
Setting to 2 will select the second value, etc. etc.
设置为 2 将选择第二个值,依此类推。
Hope this helps for those of you who had no luck with previously stated solutions.
希望这对那些对之前提到的解决方案没有运气的人有所帮助。