关于 If else 条件,我需要有关 Java 的 Selenium 代码帮助
I need help in Code in Selenium with Java regarding If else condition
强文本enter image description here
enter image description here
我需要 Selenium 代码方面的帮助 Java 关于 If else..
我有两个 WebElements,第一个是“//div[contains(text(),'Report name already exists. Please enter another name.')]”,第二个是“//div//span[contains(text( ),'Grid Report saved successfully.')]" 所以我在这里需要的是,如果第一个元素与文本匹配“报告名称已经存在。请输入另一个名称。”然后执行代码的其余部分,如果第二个元素与文本“Grid Report saved successful.”匹配,则执行编码部分的另一部分。我尝试了 if else 条件,但它不起作用..请任何人有任何想法然后请分享..
如果我的理解是正确的,请尝试下面的代码,它应该可以工作。如果不是,请post你的代码来解决这个问题。
WebElement element1 = driver.findElement(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
WebElement element2 = driver.findElement(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]"));
if(element1.isDisplayed())
{
//first set of code
}
else if(element2.isDisplayed())
{
//second set of code
}
没有本机元素来检查元素是否存在您可以使用:
创建函数:
public boolean isElementPresent(By by){
try{
driver.findElement(by);
return true;
}
catch(NoSuchElementException e){
return false;
}
}
现在在你的 if 案例中调用它:
if(isElementPresent(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]")))
{
//code
}
else if(isElementPresent(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]")))
{
//code
}
第二个选项:
List<WebElement> element1 = driver.findElement(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
List<WebElement> element2 = driver.findElement(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]"));
if(!element1.isEmpty() )
{
//first set of code
}
else if(!element2.isEmpty())
{
//second set of code
}
第二个选项有更多的处理,所以更推荐第一个
您问题的答案:
List < WebElement > ifPresent = driver.findElements(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
if (!ifPresent.isEmpty()) {
System.out.println("Use this one");
driver.findElement(By.xpath("//input[@id='btnClose']")).click();
} else {
System.out.println("Use this one else");
Set<String> handles=driver.getWindowHandles();
driver.switchTo().window((String) handles.toArray()[1]);
scrollPageUpByRobotClass();
driver.findElement(By.xpath("//input[@id='btnAlertOk']")).click();
driver.switchTo().window((String) handles.toArray()[0]);
}
强文本enter image description here
enter image description here
我需要 Selenium 代码方面的帮助 Java 关于 If else.. 我有两个 WebElements,第一个是“//div[contains(text(),'Report name already exists. Please enter another name.')]”,第二个是“//div//span[contains(text( ),'Grid Report saved successfully.')]" 所以我在这里需要的是,如果第一个元素与文本匹配“报告名称已经存在。请输入另一个名称。”然后执行代码的其余部分,如果第二个元素与文本“Grid Report saved successful.”匹配,则执行编码部分的另一部分。我尝试了 if else 条件,但它不起作用..请任何人有任何想法然后请分享..
如果我的理解是正确的,请尝试下面的代码,它应该可以工作。如果不是,请post你的代码来解决这个问题。
WebElement element1 = driver.findElement(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
WebElement element2 = driver.findElement(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]"));
if(element1.isDisplayed())
{
//first set of code
}
else if(element2.isDisplayed())
{
//second set of code
}
没有本机元素来检查元素是否存在您可以使用:
创建函数:
public boolean isElementPresent(By by){
try{
driver.findElement(by);
return true;
}
catch(NoSuchElementException e){
return false;
}
}
现在在你的 if 案例中调用它:
if(isElementPresent(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]")))
{
//code
}
else if(isElementPresent(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]")))
{
//code
}
第二个选项:
List<WebElement> element1 = driver.findElement(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
List<WebElement> element2 = driver.findElement(By.xpath("//div//span[contains(text(),'Grid Report saved successfully.')]"));
if(!element1.isEmpty() )
{
//first set of code
}
else if(!element2.isEmpty())
{
//second set of code
}
第二个选项有更多的处理,所以更推荐第一个
您问题的答案:
List < WebElement > ifPresent = driver.findElements(By.xpath("//div[contains(text(),'Report name already exists. Please enter another name.')]"));
if (!ifPresent.isEmpty()) {
System.out.println("Use this one");
driver.findElement(By.xpath("//input[@id='btnClose']")).click();
} else {
System.out.println("Use this one else");
Set<String> handles=driver.getWindowHandles();
driver.switchTo().window((String) handles.toArray()[1]);
scrollPageUpByRobotClass();
driver.findElement(By.xpath("//input[@id='btnAlertOk']")).click();
driver.switchTo().window((String) handles.toArray()[0]);
}