你如何在 Selenium Library/Robot 框架中发送特殊键?
How do you send special keys in Selenium Library/Robot Framework?
我正在尝试在 Robot Framework 中使用发送 F12
,可能是通过使用 Selenium 库的 send special key
。
我发现此页面列出了常用键的键码 https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html,其中 F12
被列为 \ue03c。
我已经尝试了所有我能想到的反斜杠和引号的组合,但其中 none 行得通。如何在 Robot Framework 中发送 F12?
此外,在下一步中我需要发送 F16,但它未在链接页面中列出 - 我该如何发送?
编辑:我不需要将键发送到特定元素左右,我只想使用其键盘快捷键触发菜单选项。
编辑 2:我仅限于 Selenium Library 3.1。
您可以使用 seleniumlibrary 内置关键字 Press Key 以及您要按下的特定键对应的 ASCII 码。
对于您的问题,如果您想发送 "F12",您将执行以下操作。
press key (An element on the page) \86
86 是 F12 的 ASCII 代码,此关键字的文档明确说明要在页面的元素上调用它。您可以在此处阅读更多相关信息。
http://robotframework.org/Selenium2Library/Selenium2Library.html#Press%20Key
从 SeleniumLibrary 3.3 开始 Press Keys
引入了以下功能:
Simulates user pressing key(s) to an element or on the active browser.
除网络元素外,这允许用户向浏览器本身发送特殊键或组合键。
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,按这个page,SHIFT+F4=F16,或者至少在 Windows.
我正在尝试在 Robot Framework 中使用发送 F12
,可能是通过使用 Selenium 库的 send special key
。
我发现此页面列出了常用键的键码 https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html,其中 F12
被列为 \ue03c。
我已经尝试了所有我能想到的反斜杠和引号的组合,但其中 none 行得通。如何在 Robot Framework 中发送 F12?
此外,在下一步中我需要发送 F16,但它未在链接页面中列出 - 我该如何发送?
编辑:我不需要将键发送到特定元素左右,我只想使用其键盘快捷键触发菜单选项。
编辑 2:我仅限于 Selenium Library 3.1。
您可以使用 seleniumlibrary 内置关键字 Press Key 以及您要按下的特定键对应的 ASCII 码。
对于您的问题,如果您想发送 "F12",您将执行以下操作。
press key (An element on the page) \86
86 是 F12 的 ASCII 代码,此关键字的文档明确说明要在页面的元素上调用它。您可以在此处阅读更多相关信息。
http://robotframework.org/Selenium2Library/Selenium2Library.html#Press%20Key
从 SeleniumLibrary 3.3 开始 Press Keys
引入了以下功能:
Simulates user pressing key(s) to an element or on the active browser.
除网络元素外,这允许用户向浏览器本身发送特殊键或组合键。
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,按这个page,SHIFT+F4=F16,或者至少在 Windows.