左側のメイン メニューにサブメニューがあるページで作業しています。メイン メニュー項目にカーソルを合わせると、サブメニューが表示されるので、サブメニューをクリックします。
以下のコードを使用しています:
@FindBy(id = "xxx")
private WebElementFacade mainmenu;
@FindBy(id = "yyy")
private WebElementFacade submenu;
Actions builder = new Actions(getDriver());
builder.moveToElement(mainmenu).perform();
submenu.waitUntilClickable().click();
私は次のような他の方法を試しました:
action.moveToElement(mainmenu).moveToElement(submenu).click().build().perform();
問題は次のように思われます: ブラウザが全画面表示のときにテストが実行されるとき、つまり
driver.manage().window().maximize();
メインメニューは、非常に速くクリックされて後退したかのように非常に速く点滅する場合があります。また、クリックされていないか、まったくホバーしていないように見える場合もあります。
このホバーとクリックのアクティブ化は、ユーザーがページに移動した直後に発生するため、メイン メニューに待機要素を追加しましたが、機能していないようです。
問題を解決する方法はありますか?ブラウザが全画面表示モードのときにのみ発生する理由がわかりません。私が考えることができる唯一の理由は、メイン メニュー要素の読み込みに時間がかかることです。
編集:
ところで、この問題は Chrome では非常に深刻です。Firefox の方が優れていますが、100% 動作するわけではありません。単純なホバーでも次のように見えます。
mainmenu.waitUntilPresent();
Actions builder = new Actions(getDriver());
builder.moveToElement(mainmenu)perform();
は常にメイン メニューにサブメニューを表示するとは限りません。なぜ機能しないのかわかりません。