我使用 Robot Framework 和 Selenium2Library 进行网站测试自动化。在其中一种情况下,会出现一个提示框(类似于警报的弹出窗口,但其中有一个输入字段,请参阅例子在这里)要求一些文字。问题是 Robot Framework 只能在此类弹出窗口中单击“确定”或“取消”(确认操作并在下一个确认关键字上选择取消)。那么问题来了:如何在提示框中输入一些文字呢?是否可以?
在SeleniumLibrary中有一个Press Key Native关键字,可以在不指定目标元素的情况下按键,但在Selenium2Library中没有。如果您知道任何替代方案 - 您的回答将不胜感激。
使用 AutoIT 不是一种选择,因为测试可以在不同平台上运行(不仅是 Win)。
我错过了什么吗?
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)