5

xPath経由で画像アイコンをクリックしようとしていますが、コードを実行すると、画像アイコンにあるリンクが開きません。この問題を解決するために私を助けてください。

メールアイコンをクリックするために使用したコード: メールアイコンをクリックするには

   driver.findElement(By.xpath("//*[@id='e-switcher-mail-icon']")).click();

ページの HTML page-part2 の HTML

4

3 に答える 3

3

slanecが言ったように、より多くの情報が必要であるか、要素がロードされていない可能性があります。要素が読み込まれたのにまだ読み込まれていないと感じた場合は、java スクリプトを使用して画像要素をクリックするのも 1 つの方法です。

このようなもの

WebElement element = driver.findElement (By.xpath ("//*[@id='e-switcher-mail-icon']"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript ("arguments[0].click();" , element);
于 2013-09-12T06:11:40.687 に答える
2

要素がまだ 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();
于 2013-09-12T04:34:00.810 に答える
0

多田

タッチ。それはフレームです。いずれ<frame><iframe>、または両方とも特別な注意が必要です。トピックに関するドキュメントを参照してください。

するべきこと:

driver.switchTo().frame("s_MainFrame");

この後、ドライバーのコンテキストがフレームに切り替わり、すべての検索がフレーム内で行われるため、それ以上問題なく要素を見つけることができるはずです。

フレーム内での操作が完了し、ページのデフォルト コンテキストに戻す必要がある場合は、次の操作を行います。

driver.switchTo().defaultContent();
于 2013-09-12T20:09:19.947 に答える