selenium - 如何单击烤面包机消息下的元素
问题描述
嗨,我参加了 selenium 自动化课程,并作为我们项目的一部分,我自动化了一个 Web 应用程序。当我添加用户烤面包机消息显示为用户添加成功。在这一步之后我必须退出,但是退出元素被烤面包机覆盖。并且错误元素不可点击异常来了。我试图给出明确的等待,javascriptexecutor 点击。但它不工作。
附上我的代码:
public static void waitForElementToBeClickable(WebDriver driver, WebElement target) {
WebDriverWait wait = new WebDriverWait(driver, TimeUnit.SECONDS.toSeconds(EXPLICIT_WAIT));
wait.until(ExpectedConditions.elementToBeClickable ((target)));
}
public void isUserMenuLoaded() {
WaitUtility.waitForElementToBeClickable(driver, userMenu);
}
public SignOutPage clickOnUserMenu() {
PageUtility.clickOnElement(userMenu);
return new SignOutPage(driver);
}
解决方案
如果 toast 有关闭按钮,您可以等待 toast 出现,然后单击关闭按钮并等待 toast 消失。
否则,您应该等到 toast 消失,然后才能单击注销按钮。
您可以通过单击带有 JavaScript 单击的注销按钮来强制执行该过程,但不建议这样做,因为这不是真实用户可以通过站点 UI 执行的方式。
推荐阅读
- artifactory - 部署文件时,Artifactory repo 文件夹结构与预期不符
- mysql - MySQL:无法通过编辑 my.ini / my.cnf 来增加 innodb_buffer_pool_size
- laravel - Laravel 在共享主机中显示图像
- c++ - Valgrind 标志,调试与发布编译
- amazon-web-services - Alexa Skill 中是否需要自定义槽值?
- apache-spark - Parquet 在 Spark 上写入 OutOfMemoryException
- ios - 在 swift 4 中使用 Anyhashable 中的副本
- php - 如何在 Typo3 的默认存储库功能中设置排序?
- validation - Laravel 为系统中的所有日期字段设置了一个通用的验证器
- ios - iOS - 无法通过 FCM 访问 firebase 项目的第三个实例