RobotFramework - 执行 Javascript
Posted
技术标签:
【中文标题】RobotFramework - 执行 Javascript【英文标题】:RobotFramework - Execute Javascript 【发布时间】:2021-12-08 05:59:59 【问题描述】:我正在尝试向我的浏览器注入 javascript Executor 函数,以返回到正在运行的浏览器实例。为此,我使用关键字“Exectute JavaScript” 我的代码如下所示:
SeleniumLibrary.Execute Javascript JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("alert('OK')")
错误如下:
JavascriptException: Message: javascript error: Unexpected identifier
(会话信息:chrome=92.0.4515.107)
看起来像是 JavaScriptExecutor 的导入?如何做到这一点?
【问题讨论】:
【参考方案1】:你可以试试下面的代码
SeleniumLibrary.Execute Javascript alert('OK')
【讨论】:
非常感谢!现在警报显示,但我的代码没有继续,之后它没有点击元素,我应该先以某种方式处理警报吗? 好的,我使用关键字“Handle Alert”进行了处理,但这仍然无法让我回到正在运行的浏览器实例:(。【参考方案2】:应该使用Handle Alert
关键字处理警报,就像您似乎已经完成的那样。为了返回到早期的浏览器实例,Selenium 提供了两个可以使用的实体。您可能想查看 SeleniumLibrary 文档的 Browsers and Windows 部分。
基本用例是,当打开浏览器时,您会给它一个别名,然后使用Switch Browser
回到那个浏览器实例。在该浏览器中,您可能打开了多个页面,可以使用普通定位器通过使用Switch Window
keyword 访问它们。例如,我通常会使用窗口 URL,因为它往往至少有一些独特的部分。如果 URL、标题或名称都不是唯一的,则使用关键字 Get Window Handles
返回该浏览器中的窗口列表。在您的情况下,预计在测试期间不会打开其他窗口,可以使用参数 MAIN
找到主浏览器窗口。
您可以考虑这个不完整的示例,并填写您在问题中没有提供的细节。
Test 1
Open Browser $your URL alias=browser1
# Do whatever triggers the alert
Handle Alert
Switch Window MAIN
【讨论】:
以上是关于RobotFramework - 执行 Javascript的主要内容,如果未能解决你的问题,请参考以下文章