selenium - 机器人框架: wait until element disappears

标签 selenium selenium-webdriver robotframework

我运行了一个测试,我必须忽略一个覆盖整个页面的 DIV 警告。首先,我单击一个添加某些内容的按钮,然后显示一条警告。最后我在字段中输入一个字符串

代码看起来像这样

SeleniumLibrary.Click element  add_button
Wait Until Element is visible  warning-overlay-div
SeleniumLibrary.Click element  dismiss-warning
SeleniumLibrary.Click element  something-else

运行此代码会产生错误消息:

WebDriverException: Message: unknown error: Element <input type="text" class="upperCaseClass modified" id="something-else" maxlength="15" style="width: 143px; text-transform: uppercase;"> is not clickable at point (230, 679). Other element would receive the click: <div class="warning-overlay-div" style="width: 100%; height: 853px; z-index: 2003;"></div>

也就是说,我无法点击something-else,因为warning-overlay-div位于其之上。

好的,所以我添加了一项检查,以确保在点击 dismiss-warning 和点击 某物之间 warning-overlay-div 消失-否则。我尝试了多种变体,但这三种都给出了相同的结果

(来自日志)

00:00:15.050KEYWORD SeleniumLibrary . Wait Until Element Is Not Visible ${warning-overlay-div}
00:00:15.003KEYWORD SeleniumLibrary . Wait Until Page Does Not Contain ${warning-overlay-div}
00:00:15.039KEYWORD SeleniumLibrary . Wait Until Page Does Not Contain Element ${warning-overlay-div}

覆盖层可能需要半秒左右才能消失,但正如您所看到的,所有这些都会等到 15 秒后超时才返回成功。我想在 warning-overlay-div 消失后立即继续,而不是等待 15 秒。

如何检查此叠加层是否已消失,然后立即继续?

最佳答案

您可以尝试使用“等待关键字成功”,为自己设置自定义重试超时。如果您想确保在适当的时间内从显示中删除警告,则特别有用。

 Wait Until Keyword Succeeds  ${retry}  ${retry-interval}  Element Should Not Be Visible  ${warning-overlay-div}   

${retry} = 执行检查的总体时间

${retry-interval}<​​/strong> = 每次重试之间的时间

Time Formats

(我本可以将其作为评论,但在我拥有 50 名代表之前我不能这样做 - 这只是可能值得尝试的事情)

关于selenium - 机器人框架: wait until element disappears,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53560067/

相关文章:

python - 如何重用 selenium 浏览器 session

java - Selenium WebDriver jQuery

java - 获取页面中多次出现的div的xpath

java - 安卓手机: How to simply open an application without installation (as it is already installed) using Appium

java - 是否有任何功能可以在整个脚本执行过程中将 Firefox 浏览器缩放级别设置为某个特定百分比?

python - 如何在机器人框架中保存先前的嵌入式参数实例?

python - 有没有办法从机器人框架获取当前的imaplibrary实例并传递给单独的python函数?

java - TestNG+Cucumber 并行测试在同一 chrome 实例上运行

java - 验证 SVG 下元素的填充颜色

python - 使用自定义库运行机器人框架测试用例时,如何解决“"NameError: global name ' x'未定义”错误?