我正在使用Robot Framework和Selenium2Library进行网站测试自动化。在其中一个案例中,有一个提示框(弹出类似于警报,但其中包含一个输入字段,请参阅example here)询问一些文本。问题是Robot Framework只能在这些弹出窗口中单击“确定”或“取消”(确认操作并选择“取消下一个确认”关键字)。所以问题是:如何在提示框中输入一些文字?有可能吗?
在SeleniumLibrary中有一个Press Key Native关键字,它可以在不指定目标元素的情况下按键,但在Selenium2Library中不存在。如果您知道任何其他选择 - 将非常感谢您的回答。
使用AutoIT不是一个选项,因为测试可以在不同的平台上运行(不仅仅是Win)。
我错过了什么吗?
答案 0 :(得分:3)
Selenium2Library目前不支持在提示中插入文本。我在问题跟踪器中为此打开了一个问题:
https://github.com/rtomac/robotframework-selenium2library/issues/292
在添加之前,您可以通过继承Selenium2Library来创建自己的selenium库,并且可以将该函数添加到您的版本中。
例如,创建一个名为" CustomSeleniumLibrary.py"的文件,并使其如下所示:
# CustomSeleniumLibrary.py
from Selenium2Library import Selenium2Library
class CustomSeleniumLibrary(Selenium2Library):
def insert_into_prompt(self, text):
alert = None
try:
alert = self._current_browser().switch_to_alert()
alert.send_keys(text)
except WebDriverException:
raise RuntimeError('There were no alerts')
然后,您可以编写一个使用该库的测试用例:
*** Settings ***
| Library | CustomSeleniumLibrary.py
| Suite Teardown | Close All Browsers
*** test cases ***
| Example of typing into a prompt
| | Open Browser | http://www.w3schools.com/js/tryit.asp?filename=tryjs_prompt
| | Select Frame | iframeResult
| | Click Button | Try it
| | Insert into prompt | my name is Inigo Montoya
| | Confirm action
答案 1 :(得分:1)
值得指出的是,此关键字现已存在(自SeleniumLibrary 3.0起),因此不再需要使用自定义脚本/库。 http://robotframework.org/Selenium2Library/Selenium2Library.html#Input%20Text%20Into%20Alert