如何在机器人框架中执行javascript

时间:2014-02-17 06:40:37

标签: selenium automated-tests selenium-webdriver robotframework

下面是我的代码,当我运行它时显示WebDriverException我想知道如何在Robot Framework中执行java脚本。这返回$(arguments [0])。data('$ {ToolTip}')。options.title代码在-java Selenium web驱动程序中运行良好。

Mouse Over    ${CreateTask}
    Execute JavaScript    return $(arguments[0]).data('${ToolTip}').options.title

4 个答案:

答案 0 :(得分:3)

来自http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html#Execute%20Javascript

  

请注意,默认情况下,代码将在。的上下文中执行   Selenium对象本身,所以这将引用Selenium对象。使用   窗口,以引用您的应用程序的窗口,例如   window.document.getElementById( '富')。

所以

Mouse Over    ${CreateTask}
    Execute JavaScript    return window.$(arguments[0]).data('${ToolTip}').options.title

假设有一些库(最有可能是JQuery)实际上理解$ shorthand。

答案 1 :(得分:2)

arguments [0]通常是指传递给脚本的参数。 Selenium2Library的执行Javascript调用webdriver。execute_javascript并且不传递任何参数。因此,参数[0]未定义。

请参阅https://stackoverflow.com/a/21273554/2532697了解解决方法。

答案 2 :(得分:1)

使用以下选项中的任何一种方法

   Execute Javascript    document.getElementById('authUser').value='admin'
 
   ${ele}    Get WebElement    id=clearPass
   Execute Javascript    arguments[0].value='pass';     ARGUMENTS    ${ele}
    
   Execute Javascript    alert(arguments[0]);    ARGUMENTS    123 
   
   Execute Javascript    document.evaluate("//*[text()='Patients']",document.body,null,9,null).singleNodeValue.click();
    
   
   Execute Javascript    document.querySelector('[data-bind="click: changePassword"]').click();
   
   
   ${ele}    Get WebElement    //*[text()='Logout']
   Execute Javascript    arguments[0].click();     ARGUMENTS    ${ele} 
   

答案 3 :(得分:0)

使用以下选项中的任何一种方法

   Execute Javascript    document.getElementById('authUser').value='admin'

   ${ele}    Get WebElement    id=clearPass
   Execute Javascript    arguments[0].value='pass';     ARGUMENTS    ${ele}
    
   Execute Javascript    alert(arguments[0]);    ARGUMENTS    123 
   
   #below code use xpath to click
   Execute Javascript    document.evaluate("//*[text()='Patients']",document.body,null,9,null).singleNodeValue.click();
    
   #below code use CSS selector to click
   Execute Javascript    document.querySelector('[data-bind="click: changePassword"]').click();
   
   #below code use xpath to click
   ${ele}    Get WebElement    //*[text()='Logout']
   Execute Javascript    arguments[0].click();     ARGUMENTS    ${ele}