我需要执行以下的evaluate函数,该函数应该采用参数列表
|@{argList}= | arg1 | arg2 | arg3 |
| Execute Javascript | var header=document.evaluate('//span[contains(text(),"Manage VLAN Profiles")]/following::table[contains(@class,"x-grid")]/tbody/descendant::tr/descendant::td/descendant::*[contains(text(),"AccessVLAN")]',document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue;
return header.textContent; |
这里我需要将@ {argList}传递给javascript函数。
答案 0 :(得分:1)
如果您的变量是简单类型,您可以将它们嵌入到脚本中,Robot Framework将在实际调用Execute Javascript之前扩展它们。
${argList}= Create List Sally 45
Execute Javascript alert('Hello ${argList[0]}, you are ${argList[1]} years old');
如果上述内容对您不起作用,并且您希望能够直接传递参数,则可以访问WebDriver实例。您可以引用通过名为arguments的数组传递的参数。
${argList}= Create List Sally 45
${s2l}= Get Library Instance Selenium2Library
Call Method ${s2l._current_browser()} execute_script alert('Hello ' + arguments[0] + ', you are ' + arguments[1] + ' years old'); @{argList}
如果您需要此功能,请在issue tracker上申请。请注意,执行此操作时,on failure failure机制将不起作用。