【问题标题】:RobotFramework - Execute JavascriptRobotFramework - 执行 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 的导入?如何做到这一点?

【问题讨论】:

    标签: javascript robotframework executor


    【解决方案1】:

    你可以试试下面的代码

    SeleniumLibrary.Execute Javascript   alert('OK')
    

    【讨论】:

    • 非常感谢!现在警报显示,但我的代码没有继续,之后它没有点击元素,我应该先以某种方式处理警报吗?
    • 好的,我使用关键字“Handle Alert”进行了处理,但这仍然无法让我回到正在运行的浏览器实例:(。
    【解决方案2】:

    应该使用Handle Alert 关键字处理警报,就像您似乎已经完成的那样。为了返回到早期的浏览器实例,Selenium 提供了两个可以使用的实体。您可能想查看 SeleniumLibrary 文档的 Browsers and Windows 部分。

    基本用例是,当打开浏览器时,您会给它一个别名,然后使用Switch Browser 回到那个浏览器实例。在该浏览器中,您可能打开了多个页面,可以使用普通定位器通过使用Switch Windowkeyword 访问它们。例如,我通常会使用窗口 URL,因为它往往至少有一些独特的部分。如果 URL、标题或名称都不是唯一的,则使用关键字 Get Window Handles 返回该浏览器中的窗口列表。在您的情况下,预计在测试期间不会打开其他窗口,可以使用参数 MAIN 找到主浏览器窗口。

    您可以考虑这个不完整的示例,并填写您在问题中没有提供的细节。

    Test 1
        Open Browser    ${your URL}    alias=browser1
        # Do whatever triggers the alert
        Handle Alert
        Switch Window    MAIN
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2013-05-25
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      相关资源
      最近更新 更多