私は Selenium を使用してソフトウェアを自動化していますが、フレーム内にクリックする必要がある Web 要素があります。
以下の方法を試しました。expectedCondtion クラスを使用する。thread.sleep() を使用する。Selenium の単純な click() メソッドを使用する。javascriptExecutor を使用する。
しかし、それは機能しません。
他に解決方法はありますか?
答え1
まず最初にスイッチにインラインフレーム要素が存在する場所を指定しないと、Seleniumは次のような要素を見つけることができません。
driver.switchTo().frame("your frame name or ID");
次に、正しいものを使用していることを確認する必要があります立地戦略ロケータが正しいことを確認してください。クリックが他の要素(親、Cookie ポップアップなど)によって傍受される可能性があるため、エラー メッセージやログに注意してください。
3番目に、WebDriverWait実装するためのクラス明示的な待機要素が読み込まれている可能性がある非同期的にすぐには利用できない
WebDriverWait wait = new WebDriverWait(driver,10); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//your/element/xpath/query"))).click();
参考文献: