私はシミュレートされたモバイル画面でテストしていますので、画面のスペースはプレミアムです。私はそれをクリックする前に、要素を表示するために、次のコードを使用していますが、クロムの場合、スクロールバーのオーバーレイはクリックアクションが発生する前にクリアされません。Selenium Webdriver:スクロールバーがクリック動作になっています
IJavaScriptExecutor je = (IJavaScriptExecutor)Driver.Instance;
je.ExecuteScript("arguments[0].scrollIntoView(true); window.scrollBy(50, -200);", element);
Thread.Sleep(700);
私は睡眠を長くすることができますが、それはテストを劇的に遅くします。私は考えることができるすべてを試しましたが、何も動作していないようです。私はchromedriverを初期化するときに、スクロールバーのオーバーレイを無効に
を試してみた
物事。
Actions btnAction = new Actions(Driver.Instance);
btnAction.MoveToElement(element).Click().Perform();
MoveToElement
も相殺の引数を持つアクションAPIを使用して chromeOptions.AddArguments("disable-overlay-scrollbar")
(スクロールオーバーレイを削除しませんでした)、しかし、私の知る限り、それは要素が配置されているどのように影響しません。窓の中で
この問題を抱えている人はいませんか?もしそうなら、あなたはそれをどのように解決しましたか?
ありがとうございました。
感謝をクリックする前にクリック可能であることを確認する代わりに
Thread.Sleep(700)
の明示的な待機を使用することができますが、私は同様にすることを試みました。セレンはスクロールバーを認識しているとは思わない。私はまだクリック可能なのを待つときに同じエラーが発生します。 –