我已经深入了解了一个imacros代码来比较IP和TRUE
在"PROXY ADDRESS={{!COL1}}"
到达该端口的工作代理时返回的意图。作为iMacros的新手并且知道更少的javascript,我设法使用变量和提取来实现这一点[编辑以包含整个代码]
VERSION BUILD=9002379 RECORDER=FX
SET !ENCRYPTION NO
TAB T=1
TAB CLOSEALLOTHERS
'clear cookies and cache:
CLEAR
SET !ERRORIGNORE NO
SET !DATASOURCE C:\MyiMacros\DATAinputs\VerifyTheseProxies.csv
SET !DATASOURCE_LINE 1
SET !EXTRACT_TEST_POPUP NO
SET NewTestProxy {{!COL1}}:{{!COL2}}
PROMPT {{NewTestProxy}}
PROXY ADDRESS={{NewTestProxy}}
URL GOTO=geoiptool.com
WAIT SECONDS=2
' ooppss proxy doesn't work
SET !EXTRACT NULL
TAG POS=1 TYPE=SPAN ATTR=ID:ProxyDetail EXTRACT=TXT
PROMPT {{!EXTRACT}}
SET ProxyFails {{!EXTRACT}}
PROMPT {{ProxyFails}}<SP>{{!COL1}}:{{!COL2}}
SET YesPrxyFail (if('{{NewTestProxy}}'.equals('{{ProxyFails}}'))?"TRUE":"FALSE");
PROMPT {{YesPrxyFail}}
当我想到TRUE
时,NewTestProxy和ProxyFails完全相同,但我得到了整个complet表达式,就好像没有被视为javascript ...
(if('{{NewTestProxy}}'.equals('{{ProxyFails}}'))?"TRUE":"FALSE");
获得该类型的结果
使用
SET YesPrxyFail EVAL(('{{NewTestProxy
我尝试了建议的
SET YesPrxyFail (if('{{NewTestProxy
我也尝试了建议的
SET YesPrxyFail eval(if('{{NewTestProxy
我觉得我正在跟踪我在这里和imacros网站以及其他地方挖出的所有样品。我错过了'小'的东西,我不知道它是什么。帮助将不胜感激!
我有一个解决方案,但不是100%舒适。这两个都返回“TRUE”,但使用两个不同的比较者
SET YesPrxyFail EVAL("var s = \"{{ProxyFails}}\"===\"{{NewTestProxy}}\"; s;")
SET YesPrxyFail EVAL("var s = \"{{ProxyFails}}\"==\"{{NewTestProxy}}\"; s;")
假设两个变量的来源是代理地址,并且接收到的两个变量可以(理论?)是来自不同来源的对象,那么严格来说它们不能相同。发现这是一个参考,但我不知道如何检查类型或实际上我测试的变量是否是对象..
:https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Operators/Comparison_Operators
如果iMacros'EVAL'被移除,那么如果有问题,则会出现错误:它不是javascript eval
答案 0 :(得分:0)
我认为,你不应该以这种方式使用EVAL,而应该使用带有三元运算符的if子句(即?:),如下所示 -
如果( '{{NewTestProxy}}' 等于( '{{ProxyFails}}')。) “TRUE”: “FALSE”;
然后在eval方法中使用此语句的结果,因为eval()方法评估表示为字符串的JavaScript代码。
您应该使用以下代码,它会对您有所帮助:
的eval(如果( '{{NewTestProxy}}' 等于( '{{ProxyFails}}')) “TRUE”。? “FALSE”);
如果有任何混淆,请退回。
答案 1 :(得分:0)
您找到的解决方案
SET YesPrxyFail EVAL("var s = \"{{ProxyFails}}\"==\"{{NewTestProxy}}\"; s;")
完全没问题。这些只是字符串。 iMacros从csv文件(NewTestProxy)读取文本字符串,从网页中提取文本(ProxyFails),EVAL正在比较两个字符串。如果它们是相同的,你会得到“真实”(也作为字符串!)。