【发布时间】:2021-01-14 16:29:03
【问题描述】:
当我对 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 公共 WebElement 链接到Exitgdpr;
exirtPopUpPane - @FindBy(xpath = "/html/body/app-root/app-survey-layout/app-survey/app-survey-gdpr/div[2]/p-toast/div/p-toastitem/div") @CacheLookup 公共WebElement exirtPopUpPane;
【问题讨论】:
-
可以分享一下错误和代码吗?
-
亲爱的,@Razvan,我已经编辑了问题中的代码。请检查。
-
不确定问题是否与您的代码有关。手动操作时会出现弹窗吗?
-
是的,拉兹万。这就是这里的问题。
-
Prime-ng 来自 Angular,而 java+selenium 并不是自动化此类应用程序的最佳工具,有时它们会变得棘手和烦人。尝试进入调试模式并在弹出窗口应该出现的步骤停止,然后尝试查看控制台/网络中是否有任何错误,也许应用程序具有 Safari 的“启动保护”功能。另外,请确保您将此功能设置为 safariDriver: javascript='true'
标签: java selenium automation