1
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 の部分を実行したい場合、エラーが次のように表示されます

要素が見つかりません: {"method":"xpath","selector":"/html/body/section[1]/div/article/nav/button[2]"}

4

3 に答える 3

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 または私が提供するコードを作成する必要があります。彼らはうまくいくはずです。

于 2016-04-19T10:05:53.633 に答える
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");
    }

それがあなたを助けることを願っています:)

于 2016-04-19T08:51:13.830 に答える