私は、左側にスクロール可能なメニューを持つWebアプリケーションを持っています。私のコードはかなりシンプルです:Selenium WebDriver JavaはChromeにスクロールする要素を見つけることができません
WebElement elementToScrollTo = driver.findElement(By.xpath(locator));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", elementToScrollTo);
ロケータは、Web要素/メニュー項目へのリンクです。問題はChromeで、最初の行はNoSuchElementException
です。だから明らかに私は最初に見つからないものにはスクロールできません。
しかし、奇妙なのはIEのすべてが完全に機能することです。要素が見つかり、メニューがスクロールします。その後、要素を使用します(つまり、その要素をクリックします)。
ブラウザウィンドウ全体をスクロールすることはできません。スクロールするには、左側のメニューパネルが必要です。
私は最新のChrome (60.0.3112.78 (Official Build) (64-bit))
とchromedriver 2.30
を持っています。
注:実際に問題を把握しました。それが見つからない理由は、メニュー項目のレベル2要素の親にスクロールしないためです。 2番目の行(スクロール)はChromeで何もしません。そのため、ドライバはレベル3(レベル2の子)でメニュー項目を見つけられません。 Chromeではスクロールが機能しない可能性があります。
私は試みることができるように、あなたは、私の完全なコードを与えることができますか? –
完全なコードを教えてください –
エラーは 'NoSuchElementException'という言い方をしています。異なるブラウザは' HTML DOM'を表現する方法が異なります。ありがとう – DebanjanB