-1

makemytrip.com でキャンセル リンクをクリックすると、「フライト予約のキャンセル」と表示された新しいフレームが開きます。これはフレームです。このフレームでは、「このウィンドウを閉じる」というリンクをクリックしようとしています。しかし、これは起こっていません.Eclipseでは、要素が存在しないというエラーが発生しています。

これがコードです。

driver.findElement(By.xpath("//div[@class='dialog_closepanel']//span//a[text()='close this window']")).click();

このリンクをクリックするにはどうすればよいですか?

4

2 に答える 2

0

次のようなことを試してください:

public static int DEFAULT_IMPLICIT_WAIT = 30;
getElementByLocator( By.cssSelector("span.ui-icon.ui-icon-closethick")).click();

この方法から:

public static WebElement getElementByLocator( By locator ) {
  long startTime = System.currentTimeMillis();
  driver.manage().timeouts().implicitlyWait( 5, TimeUnit.SECONDS );
  WebElement we = null;
  boolean unfound = true;
  while ( unfound ) {
    try {
      we = driver.findElement( locator );
      unfound = false; // FOUND IT
    } catch ( StaleElementReferenceException e ) {                      
      unfound = true;
      try {
        Thread.sleep(4000);
      } catch (InterruptedException e1) {
        e1.printStackTrace();
      }
    }       
  } 
  // and finally the cleanup          
  driver.manage().timeouts().implicitlyWait( DEFAULT_IMPLICIT_WAIT, TimeUnit.SECONDS );
  return we;
 }
于 2013-03-15T18:47:19.093 に答える
0

このコードを試してください:

driver.findElement(By.cssSelector("span.ui-icon.ui-icon-closethick")).click();

編集:

モーダルを閉じるためのリンクとアイコンが表示された場合は、次のことを試してください。

driver.findElement(By.linkText("close this window")).click();

または

driver.findElement(By.cssSelector("img[alt=\"close\"]")).click();
于 2013-03-15T18:43:41.520 に答える