2014-09-23 6 views
0

Существует выпадающее меню с <select> и некоторыми <option> -Таками в исходном коде.Изменение значения выбранной опции не изменяется. DOM

Если вручную изменить значение параметра, нажав кнопку - содержимое <div> с идентификатором #xyz будет изменен (по AJAX, JS ...)

Теперь я написал JS-скрипт и назвал его CasperJS, чтобы имитировать это. Скрипт работает нормально, и когда я получаю snapshot.png избранного параметр изменяется:

$('select#zzz').val('123').change(); 

или

document.querySelector('select#zzz').selectedIndex = 2; 

Затем скрипт будет ждать несколько секунд (5000 мс).

Но содержимое div не будет «обновлено» или «изменено».

Кто-нибудь знает, почему?

Вот скрипт:

var casper = require('casper').create({ 
    loadImages:false, 
    verbose: true, 
    userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)', 
    clientScripts: ["jquery.min.js"] 
}); 

casper.start('http://www.somewebsite.tld', function() { 
    this.test.assertExists('select[id="zzz"]', 'select is found'); 
}); 

this.evaluate(function() { 
    document.querySelector('select#zzz').selectedIndex = 2; 
    //$('select#zzz').val('123').change(); 
}); 

casper.wait(5000, function() { 
    this.capture("screenshot.png"); 
    fs.write('results.json', this.getPageContent(), 'w'); 
}); 

casper.run(function() { 
    this.echo('Dropdown selected').exit(); 
}); 

ответ

0

старенький вопрос, но вы должны использовать

casper.thenEvaluate(function() { 
    $('select#zzz').val('123').change(); 
}); 

и не

this.evaluate(function() { 
Смежные вопросы