【发布时间】:2018-08-09 06:30:19
【问题描述】:
我是 Robot Framework 的新手,并且坚持使用 SeleniumLibrary 进行非常简单的登录网页测试:
*** Test Cases ***
Valid Login
Open Browser To Login Page
Input Username admin
Input Password test
Submit Credentials
Dashboard Page Should Be Open
[Teardown] Close Browser
大部分关键字与问题无关,除了
Submit Credentials
Click Button login-button
Dashboard Page Should Be Open
Location Should Be ${DASHBOARD URL}
Title Should Be Dashboard
如果我运行这个测试,它会失败,因为Location Should Be检查执行得太早了,而浏览器还在原来的登录页面上。我找到了两种可行的解决方案,但两者在概念上似乎都是错误的:
-
使用
sleepSubmit Credentials sleep ${DELAY} Dashboard Page Should Be Open在这种情况下,
${DELAY}应该相当大(例如 10 秒)以确保该页面确实已加载,否则它可能会失败。另外,我读过最好的做法是避免睡觉。而且我不能使用一些Wait Until Page Contains,因为我不知道登录页面是否会再次加载一些错误消息或仪表板页面加载成功。 -
使用
Form Submit代替Click Button:Submit Credentials Submit Form login-form
Form Submit 工作正常,但它与实际单击按钮不同,因为按钮可能有一些 onclick 处理程序会阻止提交表单。
使用 Wait Until Keyword Succeeds 在其他一些线程中的建议似乎没有帮助,因为 Click Button 立即成功。
【问题讨论】:
标签: selenium-webdriver robotframework