2017-09-14 7 views
2

を使用して初めてでクリックなっていない:私はすべての例外を取得していない午前IEの要素が、私はIE 11内のリンクをクリックしようとすると、以下のコード使用していセレンwebdriverを

driver.findElement(By.xpath("//a[text()='En savoir plus']")).click(); 

をが、ページがどこにもナビゲートされていない場合は、ページ全体がフリーズし、続行できません。

私は数年前に同じ問題が発生しましたし、私が思い出すことができるソリューションは、二度同じコマンドを使用していた:

driver.findElement(By.xpath("//a[text()='En savoir plus']")).click(); 
driver.findElement(By.xpath("//a[text()='En savoir plus']")).click(); 

このページを凍結することなく正常にリンクをクリックします。

この問題の解決方法はありますか?

+2

javascriptExecutorを試してみてください。 – iamsankalp89

答えて

1

おそらくこれが役に立ちますか?

  try { 
    WebElement yourElement = driver.findElement(By.xpath("//a[text()='En savoir plus']")); 
        if (yourElement.isEnabled() && yourElement.isDisplayed()) { 
         System.out.println("Clicking on element with using javascript click"); 

    ((JavascriptExecutor) driver).executeScript("arguments[0].click();", yourElement); 

} else { 
       System.out.println("Unable to click on element"); 
      } 
     } catch (StaleElementReferenceException e) { 
      System.out.println("Element is not attached to the page document "+ e.getStackTrace()); 
     } catch (NoSuchElementException e) { 
      System.out.println("Element was not found in DOM "+ e.getStackTrace()); 
     } catch (Exception e) { 
      System.out.println("Unable to click on element "+ e.getStackTrace()); 
     } 
    } 
} 
2

このコードをjavascript executorメソッドで試してみてください。

注: - このボタンをクリックしに行く前には、ので、あなたのドライバができwebelementを見つけるためにもwaitの数秒を提供しています。

waitについては、Explicit Waitメソッドを使用しています。

new WebDriverWait(driver, 60).until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//a[text()='En savoir plus']"))));     //wait for 60 seconds. 
WebElement button = driver.findElement(By.xpath("//a[text()='En savoir plus']")); 
((JavascriptExecutor) driver).executeScript("arguments[0].click();", button); 
+0

このコードを試してみましたか?それはあなたのために働いていますか? –

関連する問題