ホーム>source

私のコードは次のとおりです:

<前>ウィズウィズ

何らかの理由で、console.logは渡した変数を次のように出力します。

<前>ウィズウィズ

それは正しいです、それが私がそれである必要があるものです、しかしそれらが評価されるとき私は得ます:

<前>ウィズウィズ

上記のコードは、値をハードコーディングした場合に機能します。これはコメント化されているものですが、指定した変数は使用されません。

変数が文字列からオブジェクトに変換されているため、読み取れませんか?私はここで途方に暮れています、私も試しました

<前>ウィズウィズ

そして、それは私に同じエラーを返すだけです。

var page = new WebPage(), testindex = 0, loadInProgress = false; var fs = require('fs'); var sheet = fs.read('courtcalllist.csv').split("\n").map(function(row){ return row.split(",");}); page.onConsoleMessage = function(msg) { console.log(msg); }; page.onLoadStarted = function() { loadInProgress = true; console.log("load started"); }; page.onLoadFinished = function() { loadInProgress = false; console.log("load finished"); }; for (var i = 1; i < sheet.length - 1; i ++ ){ year = sheet[i][8]; district = sheet[i][9]; casenumber = sheet[i][10]; var steps = [ function () {//first function to open page page.open("http://www.cookcountyclerkofcourt.org/CourtCaseSearch/CourtCallSearch.aspx"); }, //first function bracket function () {// second function calls page to evaulate page input page.evaluate(function(year, district, casenumber) { console.log("this is my test " + year, district, casenumber); document.getElementById('ctl00_MainContent_txtCaseYear').value = year; //'2018'; document.getElementById('ctl00_MainContent_txtCaseCode').value = district;//'M3'; document.getElementById('ctl00_MainContent_txtCaseNumber').value = casenumber;//'005338'; return; },year, district, casenumber); }, //2nd function bracket function () { // 3rd function calls evaluate click //click page.evaluate(function() { document.getElementById('ctl00_MainContent_btnSearch').click(); }); }, //3rd function bracket function () { // 4th function calls the 2nd page after data // Output content of page to stdout after form has been submitted page.evaluate(function() { for (i = 1; i < 11; i++ ){ console.log(document.querySelectorAll('td')[i].innerHTML); } }); } //4thbracket ]; interval = setInterval(function() { if (!loadInProgress && typeof steps[testindex] == "function") { console.log("step " + (testindex + 1)); steps[testindex](); testindex++; } if (typeof steps[testindex] != "function") { console.log("test complete!"); phantom.exit(); } }, 50); }
あなたの答え
  • 解決した方法 # 1

    <前>ウィズウィズ

    変数を渡す方法です。引数は最後に行くことに注意してください、そしてそれらはfunction()の中で何か他のものとして書かれなければなりません

    function () { page.evaluate(function(string1, string2, string3) { console.log("this is my test " + String(string1) + String(string2) + String(string3));//, district, casenumber); document.getElementById('ctl00_MainContent_txtCaseYear').value = String(string1);//'2002'; // console.log("this is my test " + String(string2)); document.getElementById('ctl00_MainContent_txtCaseCode').value = String(string2);//'M1';// // console.log("this is my test " + String(string3)); document.getElementById('ctl00_MainContent_txtCaseNumber').value = String(string3);//'144115'; // return; },year, district, casenumber);

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ r - SDを使用したdatatableの列のサブセットの累積合計