BUTforme présente avec casperjs - nouvelle URL ne se charge pas
Ici, je suis en train de perfom une navigation de recherche de base sur le Pubmed website. Disons que le terme que je cherche est Hello
. Ce que je m'attends à la fin est d'atterrir sur une page de résultats après avoir cliqué sur le bouton de recherche.
PROBLÈME
Le code soumis fonctionne parfaitement sur la console javascript du navigateur Chrome. Mais cela ne fonctionne pas à travers casperjs. L'URL actuelle semble rester la même. Je ne pouvais pas comprendre où est le problème.
Mon code
// USAGE: casperjs test navigation_test.js
var config = {
url: 'https://www.ncbi.nlm.nih.gov/pubmed/',
};
config.form = {
"term": "Hello",
};
casper.test.begin('Testing navigation and forms', 2, function suite(test) {
test.comment('⌚ Loading ' + config.url + '...');
casper.start(config.url, function() {
// adjust the view port
this.viewport(1280, 1024);
});
// #1 method-2 (short)
casper.then(function() {
this.fill('form#EntrezForm', config.form, true);
})
// #2
casper.then(function() {
test.assertUrlMatch(/term/, 'New location is ' + this.getCurrentUrl());
});
casper.run(function() {
test.done();
});
});
code supplémentaire
Le #1 method
dans le code ci-dessus est court. J'ai également essayé une version plus longue comme suit. Mais ça n'a pas marché non plus.
// #1 method-1 (long)
casper.then(function() {
this.evaluate(function() {
$('term').value = "Hello"
});
test.assertEvalEquals(function() {
return $('term').value;
}, "Hello", 'The search was filled out properly.');
this.click('button[id="search"][type="submit"][class="button_search nowrap"]');
// OR
// this.clickLabel('Search', 'button');
// OR
/*this.evaluate(function() {
$('search').click();
// OR
// document.getElementById('search').click();
});*/
});
Ce lien a fonctionné. https://stackoverflow.com/questions/24197587/casperjs-click-doesnt-load-new-html –