java - 使用 Safari 浏览器使用 Selenium 进行自动化测试
问题描述
当我对 safari 浏览器执行 selenium 测试脚本时出现问题。
- 问题是: - 我正在测试一个前端是从 Angular 构建的应用程序。有一个使用 Prime-Ng 的弹出模式构建,当我使用 safari 浏览器运行我的测试脚本时它没有打开。但安全脚本适用于 Firefox 和 Chrome 浏览器。
这是我的代码:-
@Test(priority = 24)
public void testExitPopUp()throws Exception{
try {
gp.linktoExitgdpr.click();
// gp.linktoExitgdpr.sendKeys(Keys.RETURN);
logger.info("Exit Link Is Selected");
Thread.sleep(4000);
if (gp.exirtPopUpPane.isDisplayed()) {
logger.info("Pop up Window is Displayed");
Assert.assertTrue(true);
} else {
logger.info("Pop up Window is not Displayed");
captureScreen(driver, "PopUPError");
Assert.fail();
}
}catch (Exception e){
logger.info("Missing Elements (Exception)");
captureScreen(driver, "exceptionmissingelemnts");
Assert.fail();
}
}
注意: - 这里所有的元素都是从另一个类中调用的。以下代码显示了我如何获取这些元素。
linktoExitgdpr - @FindBy(xpath = "/html/body/app-root/app-survey-layout/app-survey/app-survey-gdpr/div[1]/div/div[3]/div/div/div /div[3]/div[3]/a") @CacheLookup public WebElement linktoExitgdpr;
exirtPopUpPane - @FindBy(xpath = "/html/body/app-root/app-survey-layout/app-survey/app-survey-gdpr/div[2]/p-toast/div/p-toastitem/div" ) @CacheLookup public WebElement exirtPopUpPane;
解决方案
使用最新的 PrimeNG 9.0.6。和 Angular:9.1.2 检查生产变量在变量中是否具有真值,enviroment.production
并且enableProdMode()
必须在为生产构建项目时调用ng build --prod
。
if (environment.production) { enableProdMode(); }
推荐阅读
- ios - UITableview有多个自定义单元格时显示空白单元格
- c - 一个函数的 ACSL 证明,用于检查数组是按升序还是降序排序
- python - 将工作日添加到 python
- python - 如何将列表转换为列表内嵌套字典的键?
- javascript - 使用 jquery 和 bootstrap CSS 创建动态复选框列表
- javascript - 使用格式化程序绑定编辑图标时,在 angular8 中未触发 onclick 事件(制表符)
- ubuntu - ubuntu 18.04 中的查询命令
- firebase - 如何将数据从 Firebase 保存到 SQLite Android
- sql - Sql Server - 强制服务器使用特定计划
- testing - 控制系统的系统测试