2017-07-15 5 views
0

Ich möchte in der Lage sein, eine Webautomatisierungsskriptdatei mit POST-Anforderungen auszuführen. Hier ist ein Codebeispiel, wo zum Beispiel Ich mag würde ein Argument in die Datei zu übergeben .goto() mit einem Benutzer angegebene URL anstelle des einen laufen gezeigt:Übergabe von Argumenten an eine Javascript-Datei über POST-Anfrage

var Nightmare = require('nightmare'); 
var nightmare = Nightmare({ show: true }); 

nightmare 
    .goto('https://duckduckgo.com') 
    .type('#search_form_input_homepage', 'github nightmare') 
    .click('#search_button_homepage') 
    .wait('#zero_click_wrapper .c-info__title a') 
    .evaluate(function() { 
    return document.querySelector('#zero_click_wrapper .c-info__title a').href; 
    }) 
    .end() 
    .then(function (result) { 
    console.log(result); 
    }) 
    .catch(function (error) { 
    console.error('Search failed:', error); 
    }); 

Gibt es eine Möglichkeit Argumente zu übergeben wie dies direkt in .js-Dateien?

+0

Wrap dies in einer Funktion, die ein Argument akzeptiert und die URL in dem Funktionsaufruf übergeben. –

Antwort

1

Wickeln Sie den Aufruf von nightmare in einer Funktion, die das Argument akzeptiert:

var Nightmare = require('nightmare'); 
 
var nightmare = Nightmare({ show: true }); 
 

 
function nightmareWrapper(urlArgument) { 
 
    nightmare 
 
     .goto(urlArgument) 
 
     .type('#search_form_input_homepage', 'github nightmare') 
 
     .click('#search_button_homepage') 
 
     .wait('#zero_click_wrapper .c-info__title a') 
 
     .evaluate(function() { 
 
      return document.querySelector('#zero_click_wrapper .c-info__title a').href; 
 
     }) 
 
     .end() 
 
     .then(function (result) { 
 
      console.log(result); 
 
     }) 
 
     .catch(function (error) { 
 
      console.error('Search failed:', error); 
 
     }); 
 
} 
 

 
// And call it like so: 
 

 
var urlArgument = 'https://duckduckgo.com'; 
 
nightmareWrapper(urlArgument);

+0

Es klickt jetzt alles, danke! –

Verwandte Themen