使用PhantomJs,我正在尝试创建一个函数,该函数接受选择标记id和选项文本内容的String,并返回相关选项的值。我不确定如何将参数从最外层函数传递给传递给page.evaluate的函数。以下是我尝试过的内容,但变量在page.evaluate内部未定义。
function getOptionValue(selectID, name)
{
console.log("Select ID: " + selectID);
console.log("name: " + name);
return tempPage.evaluate(function(selectID, name) {
console.log("SELECT ID: " + selectID);
var elem = document.getElementById(selectID);
console.log("elem type: " + elem.type);
for(var i = 0; i < elem.length; i++)
{
if(elem.options[i].text.toLowerCase() === name.toLowerCase())
{
return elem.options[i].value;
}
}
return "nothing";
});
}
答案 0 :(得分:1)
PhantomJS有很好的文档,包括page.evaluate功能,请务必先检查它。
您的功能可以通过这种方式修复(为简洁起见,删除了console.log):
WHERE t1.Name = @name
AND
(
( t1.Type = 1 AND (t1.Amount > 0 AND @valueB < 0) )
OR ( COALESCE(t1.Type, 0) != 1 AND (t1.Amount <= @valueB) )
)