问题
Below is my code. When I run this, it shows a WebDriverException. How do I execute JavaScript code in Robot Framework?
This, return $(arguments[0]).data('${ToolTip}').options.title
code is doing well in -java Selenium web driver.
Mouse Over ${CreateTask}
Execute JavaScript return $(arguments[0]).data('${ToolTip}').options.title
回答1:
From http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html#Execute%20Javascript:
Note that, by default, the code will be executed in the context of the Selenium object itself, so this will refer to the Selenium object. Use window to refer to the window of your application, e.g. window.document.getElementById('foo').
So
Mouse Over ${CreateTask}
Execute JavaScript return window.$(arguments[0]).data('${ToolTip}').options.title
Assuming there is some library (jQuery most probably) that actually understands the $
shorthand.
回答2:
arguments[0]
normally refers to arguments passed to your script.
Selenium2Library's Execute JavaScript calls
webdriver.execute_javascript and does not pass any arguments to it. arguments[0]
is therefore undefined.
See Is there a way to provide arguments to "Execute JavaScript" in Robot Framework? for a workaround.
来源:https://stackoverflow.com/questions/21822386/how-to-execute-javascript-in-robot-framework