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我能够成功运行脚本但是当我想运行其他部分时它会显示错误
无法找到元素: { “方法”: “的xpath”, “选择器”: “/ HTML /体/区段[1] / DIV /条/ NAV /按钮[2]”}
答案 0 :(得分:1)
根据代码,如果显示第一个元素,则转到代码if 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
}
谢谢你, Murali
答案 1 :(得分:0)
尝试以下代码: -
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");
}
希望它会对你有所帮助:)。
答案 2 :(得分:0)
试试这个
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或我提供的代码。他们应该工作。