【问题标题】:How do you send special keys in Selenium Library/Robot Framework?如何在 Selenium Library/Robot Framework 中发送特殊密钥?
【发布时间】:2019-01-08 20:30:10
【问题描述】:

我正在尝试使用 Robot Framework 发送 F12,可能是使用 Selenium 库的 send special key

我发现此页面列出了常见不常用键 https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html 的键码,其中 F12 列为 \ue03c。

我已经尝试了所有我能想象到的反斜杠和引号的组合,但它们都不起作用。如何在 Robot Framework 中发送 F12?

此外,在下一步中,我需要发送 F16,但它未在链接页面中列出 - 我该如何发送?

编辑:我不需要将键发送到特定元素左右,我只想使用其键盘快捷键触发菜单选项。

编辑 2:我仅限于 Selenium Library 3.1。

【问题讨论】:

    标签: selenium robotframework key-bindings


    【解决方案1】:

    从 SeleniumLibrary 3.3 开始,Press Keys 引入了以下功能:

    模拟用户对元素或活动浏览器的按键。

    这允许用户向浏览器本身发送特殊的键或组合键,除了网络元素。

    Sleep   5s
    Press Keys  //*[contains(@id,'textfield')]    AAAAA    # enter text "AAAAA" to a textfield
    Sleep   5s
    Press Keys  None    F3    # F3 into browser
    Sleep   5s
    Press Keys  None    CTRL+Z   # Send CTRL+Z to browser to Undo "AAAAA" in the textfield
    Sleep   5s
    

    这是三个Press Keys 调用的输出日志:

    • 第一个只需在文本字段中输入:

      KEYWORD SeleniumLibrary.Press Keys //*[contains(@id,'textfield')], AAAAA
      Documentation: Simulates user pressing key(s) to an element or on the active browser.
      INFO    Sending key(s) ('AAAAA',) to //*[contains(@id,'textfield')] element.    
      INFO    Sending keys AAAAA
      
    • 第二个向浏览器发送特殊密钥:

      KEYWORD SeleniumLibrary.Press Keys None, F12
      Documentation: Simulates user pressing key(s) to an element or on the active browser.
      INFO    Sending key(s) ('F12',) to page.    
      INFO    Pressing special key F12 to browser.    
      
    • 第三个,按住CONTROL,然后发送Z,然后释放CONTROL。总而言之,执行Undo 操作。全部发送到页面。

      KEYWORD SeleniumLibrary.Press Keys None, CTRL+Z
      Documentation: Simulates user pressing key(s) to an element or on the active browser.
      INFO    Sending key(s) ('CTRL+Z',) to page.     
      INFO    Pressing special key CONTROL down.  
      INFO    Sending key Z   
      INFO    Releasing special key CONTROL.
      

    至于F16,根据这个pageSHIFT+F4=F16,或者至少在 Windows 上。

    【讨论】:

      【解决方案2】:

      您可以使用 seleniumlibrary 内置关键字 Press Key 以及您要按下的某个键的相应 ASCII 码。

      对于您的问题,如果您想发送“F12”,请执行以下操作。

      press key    (An element on the page)    \\86
      

      86 是 F12 的 ASCII 代码,该关键字的文档明确说明在页面元素上调用它。您可以在此处阅读更多相关信息。

      http://robotframework.org/Selenium2Library/Selenium2Library.html#Press%20Key

      【讨论】:

      • 如果没有特定元素可以发送密钥怎么办?
      • @EmLi > 如果没有特定元素可以发送密钥怎么办?将其发送到页面的 body 元素 - xpath=//body
      • @JustinWilkins 对不起,你是对的,press key 在 3.1 中可用,press keyS 需要 3.3。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2016-04-17
      • 2022-11-10
      • 1970-01-01
      • 2019-10-13
      • 2021-04-21
      相关资源
      最近更新 更多