Ich versuche, ein .Net-Formular zu senden und dann Elemente von der Antwortseite zu erfassen. Das .Net-Formular scheint nicht korrekt zu senden, da CasperJS die Formularseite einfach neu lädt. Das CasperJS-Beispiel zum Speichern von Google-Suchergebnissen funktioniert für mich gut, aber dieses Formular lädt die Antwortseite einfach nicht.So übermitteln Sie erfolgreich .Net-Formular mit CasperJS
var casper = require("casper").create({
verbose: true,
logLevel: "debug",
});
casper.start("https://jobs.ca.gov/Public/JobVacancySearch.aspx", function(){
this.fill('#form1', {'ctl00$cphMainContent$txtJobTitle': 'Programmer'}, true);
this.waitForSelector("#cphMainContent_gvSearchResults");
});
casper.run(function(){
console.log("success");
});
Dies ist die Ausgabe:
casperjs so-test.js --config=<(echo '{"sslProtocol": "any"}') --ignore-ssl-errors=true
[info] [phantom] Starting...
[info] [phantom] Running suite: 2 steps
[debug] [phantom] opening url: https://jobs.ca.gov/Public/JobVacancySearch.aspx, HTTP GET
[debug] [phantom] Navigation requested: url=https://jobs.ca.gov/Public/JobVacancySearch.aspx, type=Other, lock=true, isMainFrame=true
[debug] [phantom] url changed to "https://jobs.ca.gov/Public/JobVacancySearch.aspx"
[debug] [phantom] Navigation requested: url=https://jobs.ca.gov/MasterContent/headerSiteSearch.html, type=Other, lock=true, isMainFrame=false
[debug] [phantom] Navigation requested: url=https://jobs.ca.gov/MasterContent/headerSiteSearch.html, type=Other, lock=true, isMainFrame=false
[debug] [phantom] Successfully injected Casper client-side utilities
[info] [phantom] Step 2/2 https://jobs.ca.gov/Public/JobVacancySearch.aspx (HTTP 200)
[info] [remote] attempting to fetch form element from selector: '#form1'
[debug] [remote] Set "ctl00$cphMainContent$txtJobTitle" field value to Programmer
[info] [remote] submitting form to ./JobVacancySearch.aspx, HTTP POST
[info] [phantom] Step 2/2: done in 2070ms.
[debug] [phantom] Navigation requested: url=https://jobs.ca.gov/Public/JobVacancySearch.aspx, type=FormSubmitted, lock=true, isMainFrame=true
[debug] [phantom] url changed to "https://jobs.ca.gov/Public/JobVacancySearch.aspx"
[debug] [phantom] Navigation requested: url=https://jobs.ca.gov/MasterContent/headerSiteSearch.html, type=Other, lock=true, isMainFrame=false
[debug] [phantom] Navigation requested: url=https://jobs.ca.gov/MasterContent/headerSiteSearch.html, type=Other, lock=true, isMainFrame=false
[debug] [phantom] Successfully injected Casper client-side utilities
[info] [phantom] Step 3/3 https://jobs.ca.gov/Public/JobVacancySearch.aspx (HTTP 200)
[info] [phantom] Step 3/3: done in 2355ms.
[warning] [phantom] Casper.waitFor() timeout
[error] [phantom] Wait timeout of 5000ms expired, exiting.
Wait timeout of 5000ms expired, exiting.
Machen Sie einen Screenshot, um zu sehen, was passiert ist. Dies würde in den 'onTimeout'-Callback von' waitForSelector' gehen. –
Der Screenshot gibt keinen Einblick. Keine Nachrichten auf dem Bildschirm. Die Debug-Nachrichten zeigen einfach, dass wenn das Formular übergeben wird, es zurück zur JobVacancySearch.aspx geht –