2017-08-08 19 views
0

私はJavaScriptを初めて使用しています。最後に抽出した値をiMacrosから取得するための助けが必要です。問題は、JavaScript関数alert()を使用すると、最後の正しい抽出が表示されますが、条件付きでは機能しないことが示されます。マクロのiMacros iimGetExtract()

ステップ:

  1. Click on image which is positioned based on LOOP

  2. Click on button and if there exists a text, extract the text and if text is 2 start another iim code. The code is more complex, this is only part for extract debug which is important for conditionals which starts another piece of code

は私が取得していますエラーは次のとおりです。ここで

TypeError: path is undefined, line -633 (Error code: -991)

はコードです:

var numPage = prompt("current numPage?"); 
numPage++; 
var i = 1; 
var macroStart; 
macroStart = "CODE:"; 
macroStart += "'set global variables" + "\n"; 
macroStart += "SET !EXTRACT_TEST_POPUP NO" + "\n"; 
macroStart += "SET tabCheck NULL" + "\n"; 
macroStart += "SET !ERRORIGNORE YES" + "\n"; 
macroStart += "SET !EXTRACT NULL" + "\n"; 
macroStart += "SET !TIMEOUT_STEP 1" + "\n"; 
macroStart += "SET !CLIPBOARD NULL" + "\n"; 
macroStart += "SET productUrl {{!URLCURRENT}}" + "\n"; 
macroStart += "TAG POS={{i}} TYPE=IMG ATTR=SRC:https://www.xxx.sk/admin/xxx/xxx/img/uprav.gif" + "\n"; 
macroStart += "TAG POS=1 TYPE=A ATTR=ID:zalozka_obrazky" + "\n"; 
macroStart += "TAG POS=1 TYPE=A ATTR=TXT:2 EXTRACT=TXT" + "\n"; 

macroStartExtract = iimGetLastExtract(); 
if (macroStartExtract == 2) { 
    var goToProductUrl; 
    goToProductUrl += "'back to main product's page" + "\n"; 
    goToProductUrl += "SET !VAR5 2" + "\n"; 
    goToProductUrl += "PROMPT !VAR5" + "\n"; 
    iimPlay(goToProductUrl); 
    } else {iimPlay(goToProductUrl);} 


var macroChangePage; 
macro2 = "CODE:" 
macro2 += "TAG POS=2 TYPE=A ATTR=TXT:{{numPage}}" 

while (i < 2) { 
    iimSet("i",i) 
    iimPlay(macroStart) 
    i++; 

    if (i == 2) { 
     iimSet("numPage", numPage) 
     iimPlay(macroChangePage) 
     numPage++ 
     i = 1; 
    } 
} 
+0

このimacrosはどのページに実行する必要がありますか?あなたはどんなサイトから逃げるのですか? –

+0

その1つのeshopのための内部管理メニュー、マクロは、製品IDをコピーして、ベンダーのWebサイトから欠落した画像をダウンロードしてアップロードする必要があります。これは簡単なimacrosで今動作しますが、 「写真はアップロードできませんでした」というテキストにマッチした後、空白のタブ1に行き、マクロが製品のページに移動して製品をクリックするまで待っています... – Jakub

+0

ウェブサイトなしでOKですとにかくそれを固定している良い仕事 –

答えて

0

私は問題のコードをチェックし、私が見つかりました。それは以下のブロックで失敗していたことを示しています。

else {iimPlay(goToProductUrl);} 

if条件でgoToProductUrl変数が定義されているためです。 ifは実行されず、elseブロックに入ると変数は定義されず、プログラムは失敗します。 URLの不足のために動作するプログラムをチェックすることができませんが、elseブロックは次のようになりますか?

else {iimPlay(macroStart);} 

JavaScriptエラーは修正されました。エラーを取り除いた後にコードを作成してみてください。

var numPage = prompt("current numPage?"); 
numPage++; 
var i = 1; 
var macroStart; 
macroStart = "CODE:"; 
macroStart += "'set global variables" + "\n"; 
macroStart += "SET !EXTRACT_TEST_POPUP NO" + "\n"; 
macroStart += "SET tabCheck NULL" + "\n"; 
macroStart += "SET !ERRORIGNORE YES" + "\n"; 
macroStart += "SET !EXTRACT NULL" + "\n"; 
macroStart += "SET !TIMEOUT_STEP 1" + "\n"; 
macroStart += "SET !CLIPBOARD NULL" + "\n"; 
macroStart += "SET productUrl {{!URLCURRENT}}" + "\n"; 
macroStart += "TAG POS={{i}} TYPE=IMG ATTR=SRC:https://www.xxx.sk/admin/xxx/xxx/img/uprav.gif" + "\n"; 
macroStart += "TAG POS=1 TYPE=A ATTR=ID:zalozka_obrazky" + "\n"; 
macroStart += "TAG POS=1 TYPE=A ATTR=TXT:2 EXTRACT=TXT" + "\n"; 

macroStartExtract = iimGetLastExtract(); 
if (macroStartExtract == 2) { 
    var goToProductUrl; 
    goToProductUrl += "'back to main product's page" + "\n"; 
    goToProductUrl += "SET !VAR5 2" + "\n"; 
    goToProductUrl += "PROMPT !VAR5" + "\n"; 
    iimPlay(goToProductUrl); 
    } else {iimPlay(macroStart);} 


var macroChangePage; 
macro2 = "CODE:" 
macro2 += "TAG POS=2 TYPE=A ATTR=TXT:{{numPage}}" 

while (i < 2) { 
    iimSet("i",i) 
    iimPlay(macroStart) 
    i++; 

    if (i == 2) { 
     iimSet("numPage", numPage) 
     iimPlay(macroChangePage) 
     numPage++ 
     i = 1; 
    } 
} 
+0

助けと解決:) – Jakub