2016-03-15 2 views
11

nightwatch.jsを使用して選択ボックスからオプションを選択しようとしています。セレクトボックスからオプションを選択する

私は、コードを持っている:

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"]'); 

それは、正しい月ページの年ではなく、日を選択します。今日の選択ボックスの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> 

誰もが適切な日を選択しない理由を知っていますか?

+0

.setValue ('select[id="yourselectid"]','abc')を行います。 – itzmukeshy7

+0

私の答えはあなたを助けるかもしれないhttp://stackoverflow.com/questions/37112583/cannot-locate-element-using-recursion-after-it-found-it-as-visible/37129429#37129429 –

答えて

21

this postによると、この作品:

.click('#myselectbox option[value=somevalue]') 
+0

どうすればいいですか?バニラJSのNWの? – SuperUberDuper

+0

thx、変更イベントで選択した変更が表示されていますが、イベントではどのオプションが選択されているか表示されません。私は後に選択を照会する必要があると思いますか? – SuperUberDuper

+0

** document.querySelector( "#myselectbox option [value = somevalue]")。click()**は、UIで選択されたオプションの値を変更しません。 – SuperUberDuper

8

を次の構文は、より信頼性のようです:

.click('select[id="myselectbox"] option[value="somevalue"]') 
+0

票を落として説明してください。私は詳細を知りたいです。 Cees Timmermanの答えはよかったけど、私にとってはうまくいかない。 – 79E09796

2

あなたがPageオブジェクトで行いたい場合は、コールバックを使用する必要があります。

sectionInfo.click("@selectOwner",()=>{ 
    sectionInfo.click("option[value='owner']"); 
}); 
4

次のように試してみてください。

<option value="2">2</option> 
... 
.setValue('select[id="day"]','2') 

あなたのオプション

例えば、テキストとは異なる値を持っている場合<option value="123">abc</option>

あなたはすべてのHTMLコードがわからないかもしれ同じ名前を持つ別の選択があるかもしれ共有することがあり

関連する問題