目标:弹出警报。无论它是否显示,我希望它继续。如果显示,则必须选中复选框,然后单击“继续”。如果没有,忽略它。
拦截器:如果警告显示,它将处理的行动和对话将被关闭。但当它不是,硒挂在那里,没有处理条件,当它不显示。
背景:我以前使用过UFT,也许我的逻辑可能是错误的。弹出窗口是应用程序警报(不是系统),因此假设“切换到(),accept()/dismise()将不起作用。我将在登录后立即在下面的登录方法中添加句柄警报。
硒框架背景。:我们使用硒纤维框架,宁静BDD。对象设置在页面的开头。和 serenity.properties 处理超时默认值,依此类推。
弹出对象(如果出现):
@FindBy(xpath = "//input[@id='notification-ack']")
private WebElement PcoNoticeChbx; //this is a check box, needs to be checked
@FindBy(xpath = "//button[contains(.,'Continue')]")
private WebElement PcoNoticeContinueBtn;//button to close the alert
*登录方法*
public void loginIntoExtApplication(String baseURL, String loginURL, String uId, String pwd, String extAppEnv)throws Exception {
gotoExtLoginPage(baseURL, loginURL);
enterLoginCredential(uId, pwd);
openAt("https://" + extAppEnv + ".programportaltest.hrsa.gov/sdms-
extranet/index.xhtml");
我的方法:
//1.
if (PcoNoticeChbx!=null) {
PcoNoticeChbx.click();
PcoNoticeContinueBtn.click();
} else {
System.out.println("Dialog didn't display, no need any action");
}
//2.登录操作后挂在此处。
if(!getDriver().findElements(By.xpath("//*[@id='submit']")).isEmpty()){
PcoNoticeChbx.click();
PcoNoticeContinueBtn.click();
}
else {
System.out.println("Dialog didn't display, no need any action");
}
3.添加到监视不起作用,它显示挂起,下面的代码也失败。我在调试模式下在 Junit 中运行了我的 Maven。它曾经工作正常。但观看元素始终显示(待定)。
boolean isPresent = getDriver().findElements(By.id("noticebox")).size() >0
System.out.println("the diaolog exist= " + isPresent);
//4.甚至试过试抓法。
try{
PcoNoticeChbx.click();
PcoNoticeContinueBtn.click();
}catch (Exception e){
// Printing logs for my report
Log.error("Report Category button element is not found.");
// After doing my work, now i want to stop my test case
throw(e);
}
return;
}
//5.尝试列出webelemets:
List temp=webdriver.findElements(org.openqa.selenium.By.id(“noticebox”);
if (temp.Count > 0 && temp[0].Displayed) {
// script to execute if element is found
} else {
// continue the test
}
6.及以下
if (!WebDriver.findElements(By.xpath("//*[@id='submit']")).isEmpty()==true);
{
//handle the dialog
}
else{
//continue
}
7.尝试使用布尔值,但它也挂起在这里的第一步
boolean Nbox = PcoNoticeChbx.isDisplayed(); {
if (Nbox==false)
{
System.out.println("Dialog didn't display, no need any action");
}
else if (Nbox==true) {
PcoNoticeChbx.click() ;
PcoNoticeContinueBtn.click();
}
为我的情况找到了解决方案。
这可能很容易。但是我需要一些时间去研究。希望对你有帮助。
在使用了许多方法之后,对于这个javascript确认警报。我使用了下面的方法。所有的帮助。电流可见()方法。因为这个,我想只有这个会给你结果,即使元素不存在或为空。
if (element(NoticeContinueBtn).**isCurrentlyVisible**()==true) {
PcoNoticeChbx.click();
PcoNoticeContinueBtn.click();
//else just continue
}
如果这就像我处理过的弹出窗口一样,它们的工作方式是这样的:
您需要进行一些调查,并找到弹出窗口关闭后创建的cookie。清除缓存,浏览到网站,并记下存在的所有 Cookie。等待弹出窗口并将其关闭。现在找到刚刚创建的 Cookie 并对其进行检查。这是您需要创建的 Cookie。有很多关于创建cookie的教程。这很简单。
一旦您了解了如何创建cookie,您就可以将其添加到您的脚本中,如下所述:
没有更多的弹出窗口。
问题内容: Java noob在这里。当用户按下Windows关闭按钮时,扩展的Swing类不会处理- java.exe保留在内存中。我已经将代码剥离到了这个shell上,但我仍然可以做到这一点。 我看了其他示例,例如Basic Java Swing,如何退出和处置您的应用程序/JFrame。 当我注释掉该示例代码中的两行时,该示例中的类仍然正确处理。我想让我的班级丢掉什么? 问题答案: 您正在创
我面临一个问题,其中我得到一个异常说UnhandledAlertException模态对话框存在,下面是一些痕迹 组织。openqa。硒。未处理的AlertException:存在模式对话框:此页面要求您确认是否要离开-您输入的数据可能不会保存。构建信息:版本:“2.41.0”,版本:“3192D8A6C4449DC285928BA02479344F5423C58”,时间:“2014-03-27
我正在使用新的JavaFX Alert类(Java1.8_40),并尝试在exibition文本中使用HTML标记,但到目前为止还没有成功。下面是我正在尝试做的一个例子。 有没有人知道这是不是真的可能,给我举个例子? 提前道谢。
我在antoher的项目中有完全相同的代码,但它在这里继续崩溃。我有。我真的不确定问题出在哪里。我尝试过切换gradle版本,从切换到。不管怎样,一切都失败了
我停电了,打开Android Studio后,我每次打开Android Studio都会出现这个错误,我的文件——它们都受到this.how的影响来修复它? 无法执行aapt