2016-04-12 11 views
1

ドロップダウンリストに問題があります。リストは満たされていません。私はcasper.fillを使用して、クリックしてください、それが動作しません。.. HTML:CasperJSのドロップダウンリストを入力

<form id="login-form" novalidate="novalidate" name="login-form" > 
<div class="select"> 
    <input name="cardType" value=" " type="hidden"> </input> 
    <select name="switch-card-type" name="cardType"> 
    <option value="1">text 1 
    <option value="2">text 2 
    <option value="3">text 3 
    </select> 
</div> 
<div class="select-area custom-select-89578"> 
<div class="center">text 2</div> 
<a tabindex="-1" href="#" class="select-button"></a> 

<div class="drop-box drop-undefined drop-89578"> 
<div class="cssbody"> 
    <ul> 
     <li class data-index="0"> 
      <a href="#">"text 1"</a> 
     </li> 
     <li class ="selected" data-index="1"> 
      <a href="#">"text 2"</a> 
     </li> 
     <li data-index="2"> 
      <a href="#">"text 3"</a> 
     </li> 
    </ul> 
</div> 
</div> 
</form> 

CasperJS:

casper.waitForSelector("form#login-form",function() { 
      this.fill('form#login-form', { 
    'switch-card-type':'2'}); 
}); 

または

casper.waitForSelector("form#login-bonus-card-form",function() { 
      this.click(x('//*[@id="login-form"]/div[2]/a')); 
      this.click(x('//div[@class="drop-box drop-undefined drop-89578"]/div/ul/li[2]/a')); 
     }); 

エラー、リストにはありませんペン

デバッグがはっきりしています。 最初の場合:

[info] [remote] attempting to fetch form element from selector: 'form#login-card' 
[debug] [remote] Set "switch-card-type" field value to 2 
[info] [phantom] Step success 7/12: done in 1688ms. 

実際には値は選択されていません。エラーはありません。..

秒の場合:最初のクリックが作業をdoes't

[debug] [phantom] Mouse event 'mousedown' on selector: xpath selector: //*[@id="login-form"]/div[2]/a 
[debug] [phantom] Mouse event 'mouseup' on selector: xpath selector: //*[@id="login-form"]/div[2]/a 
[debug] [phantom] Mouse event 'click' on selector: xpath selector: //*[@id="login-form"]/div[2]/a 
[debug] [phantom] Mouse event 'mousedown' on selector: xpath selector://div[@class="drop-box drop-undefined drop-89578"]/div/ul/li[2]/a 
FAIL Cannot dispatch mousedown event on nonexistent selector: xpath selector: //div[@class="drop-box drop-undefined drop-89578"]/div/ul/li[2]/a enter code here 
# type: uncaughtError 
# file: testcase/test2.js:1378 
# error: Cannot dispatch mousedown event on nonexistent selector: xpath selector: //div[@class="drop-box drop-undefined drop-89578"]/div/ul/li[2]/a 
# [email protected]://platform/casper.js:1378:105 
# [email protected]://platform/casper.js:467:34 
# [email protected]://code/mvideo_lib.js:353:15 
# [email protected]://platform/casper.js:1577:31 
# [email protected]://platform/casper.js:404:28 
# stack: not provided 

ので...

+0

どのPhantomJSバージョンを使用しますか? 'resource.error'、' page.error'、 'remote.message'、' casper.page.onResourceTimeout'イベントに登録してください([Example](https://gist.github.com/artjomb/4cf43d16ce50d8674fdf#file) -2_caspererrors-js))。多分エラーがあるかもしれません。 @ArtjomB。 –

+0

PhantomJS 2.1.1。 エラーが説明に追加されます。 –

答えて

0

私はその決意を発見した:

casper.waitForSelector("form#login-bonus-card-form", 
     function success() { 
      this.click('.select-button'); 
      this.click(x('//div[@class="csbody"]/ul/li[2]/a')); 
     }); 

それが仕事です。

関連する問題