以下 If else 条件在我的脚本中不起作用
Below If else condition is not working in my script
driver.findElement(By.id("btnSendMailCopy")).click();
Thread.sleep(3000);
if(driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).isDisplayed())
{
driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).click();
System.out.println("clicked");
}
else if(driver.findElement(By.id("VendorCardHolderName")).isDisplayed())
{
Select dropdown = new Select(driver.findElement(By.id("VendorTinCardType")));
dropdown.selectByVisibleText("VISA");
driver.findElement(By.id("VendorCardHolderName")).sendKeys("TestName");
在不使用 if else 的情况下,我能够成功 运行 脚本,但是当我想 运行 else 部分时,它显示错误为
Unable to locate element:
{"method":"xpath","selector":"/html/body/section[1]/div/article/nav/button[2]"}
尝试如下代码:-
Boolean dd = driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).isDisplayed();
if(dd==true)
{
driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).click();
System.out.println("clicked");
}
else{
System.out.println("Element is not found");
}
希望对您有所帮助:)
根据代码,如果显示第一个元素,则在 if 中查找代码,如果未显示第一个元素,则在 else 中查找代码。
现在简单的事情是,如果第一个元素没有显示那么我们肯定会收到无元素异常,对吗?所以我们需要通过 try/catch.
来处理这个问题
Boolean dd;
try{
dd = driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).isDisplayed();
}catch(Exception e){
//you can print as element not displayed
}
然后如果条件
if(dd==true){
//do something
}else{
//do some thing else
}
谢谢,
穆拉利
试试这个
driver.findElement(By.id("btnSendMailCopy")).click();
Thread.sleep(3000);
if(driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).size()>0)
{
driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).click();
System.out.println("clicked");
}
else if(driver.findElements(By.id("VendorCardHolderName")).size()>0)
{
Select dropdown = new Select(driver.findElement(By.id("VendorTinCardType")));
dropdown.selectByVisibleText("VISA");
driver.findElement(By.id("VendorCardHolderName")).sendKeys("TestName");
}
由于您在 isDisplayed 检查的元素不可用,因此失败。因此,要克服这一点,您必须编写 try/catch 或我提供的代码。他们应该工作。
driver.findElement(By.id("btnSendMailCopy")).click();
Thread.sleep(3000);
if(driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).isDisplayed())
{
driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).click();
System.out.println("clicked");
}
else if(driver.findElement(By.id("VendorCardHolderName")).isDisplayed())
{
Select dropdown = new Select(driver.findElement(By.id("VendorTinCardType")));
dropdown.selectByVisibleText("VISA");
driver.findElement(By.id("VendorCardHolderName")).sendKeys("TestName");
在不使用 if else 的情况下,我能够成功 运行 脚本,但是当我想 运行 else 部分时,它显示错误为
Unable to locate element: {"method":"xpath","selector":"/html/body/section[1]/div/article/nav/button[2]"}
尝试如下代码:-
Boolean dd = driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).isDisplayed();
if(dd==true)
{
driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).click();
System.out.println("clicked");
}
else{
System.out.println("Element is not found");
}
希望对您有所帮助:)
根据代码,如果显示第一个元素,则在 if 中查找代码,如果未显示第一个元素,则在 else 中查找代码。
现在简单的事情是,如果第一个元素没有显示那么我们肯定会收到无元素异常,对吗?所以我们需要通过 try/catch.
来处理这个问题Boolean dd;
try{
dd = driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).isDisplayed();
}catch(Exception e){
//you can print as element not displayed
}
然后如果条件
if(dd==true){
//do something
}else{
//do some thing else
}
谢谢, 穆拉利
试试这个
driver.findElement(By.id("btnSendMailCopy")).click();
Thread.sleep(3000);
if(driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).size()>0)
{
driver.findElement(By.xpath("/html/body/section[1]/div/article/nav/button[2]")).click();
System.out.println("clicked");
}
else if(driver.findElements(By.id("VendorCardHolderName")).size()>0)
{
Select dropdown = new Select(driver.findElement(By.id("VendorTinCardType")));
dropdown.selectByVisibleText("VISA");
driver.findElement(By.id("VendorCardHolderName")).sendKeys("TestName");
}
由于您在 isDisplayed 检查的元素不可用,因此失败。因此,要克服这一点,您必须编写 try/catch 或我提供的代码。他们应该工作。