xPath経由で画像アイコンをクリックしようとしていますが、コードを実行すると、画像アイコンにあるリンクが開きません。この問題を解決するために私を助けてください。
メールアイコンをクリックするために使用したコード:
driver.findElement(By.xpath("//*[@id='e-switcher-mail-icon']")).click();
xPath経由で画像アイコンをクリックしようとしていますが、コードを実行すると、画像アイコンにあるリンクが開きません。この問題を解決するために私を助けてください。
メールアイコンをクリックするために使用したコード:
driver.findElement(By.xpath("//*[@id='e-switcher-mail-icon']")).click();
slanecが言ったように、より多くの情報が必要であるか、要素がロードされていない可能性があります。要素が読み込まれたのにまだ読み込まれていないと感じた場合は、java スクリプトを使用して画像要素をクリックするのも 1 つの方法です。
このようなもの
WebElement element = driver.findElement (By.xpath ("//*[@id='e-switcher-mail-icon']"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript ("arguments[0].click();" , element);
要素がまだ DOM にロードされていない可能性があります。予想される条件を待ってみてください。
Wait<WebDriver> wait= new FluentWait<WebDriver>(driver).withTimeout(15L, TimeUnit.SECONDS).pollingEvery(1, TimeUnit.SECONDS);
WebElement icon = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='e-switcher-mail-icon']")));
icon.click();
タッチ。それはフレームです。いずれ<frame>
か<iframe>
、または両方とも特別な注意が必要です。トピックに関するドキュメントを参照してください。
するべきこと:
driver.switchTo().frame("s_MainFrame");
この後、ドライバーのコンテキストがフレームに切り替わり、すべての検索がフレーム内で行われるため、それ以上問題なく要素を見つけることができるはずです。
フレーム内での操作が完了し、ページのデフォルト コンテキストに戻す必要がある場合は、次の操作を行います。
driver.switchTo().defaultContent();