From f8dcab21b97a9302338e43dee9c16e73dfe6b38b Mon Sep 17 00:00:00 2001 From: damencho Date: Tue, 25 Jun 2024 14:24:38 +0300 Subject: [PATCH] fix: Adds a workaround for not interactable menu on hover. --- .../pageobjects/web/ParticipantsPane.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/jitsi/meet/test/pageobjects/web/ParticipantsPane.java b/src/test/java/org/jitsi/meet/test/pageobjects/web/ParticipantsPane.java index 8034cc131..609b0e0c7 100644 --- a/src/test/java/org/jitsi/meet/test/pageobjects/web/ParticipantsPane.java +++ b/src/test/java/org/jitsi/meet/test/pageobjects/web/ParticipantsPane.java @@ -417,7 +417,7 @@ private void clickAutoAssignButton() * * @param remoteId id the participant for which to open the menu */ - private void openParticipantContextMenu(String remoteId) + private void openParticipantContextMenu(String remoteId, boolean retry) { WebElement listItem = TestUtils.waitForElementBy(participant.getDriver(), By.xpath("//div[@id='participant-item-" + remoteId + "']"), 5); @@ -426,8 +426,27 @@ private void openParticipantContextMenu(String remoteId) hoverOnParticipantListItem.moveToElement(listItem); hoverOnParticipantListItem.perform(); - String cssSelector = MeetUIUtils.getAccessibilityCSSSelector(PARTICIPANT_MORE_LABEL); - listItem.findElement(By.cssSelector(cssSelector)).click(); + try + { + String cssSelector = MeetUIUtils.getAccessibilityCSSSelector(PARTICIPANT_MORE_LABEL); + listItem.findElement(By.cssSelector(cssSelector)).click(); + } + catch (ElementNotInteractableException e) + { + if (retry) + { + throw e; + } + + // workaround of exception we sometimes see + // let's move the mous to local video and then back try the context menu + WebElement toolbar = participant.getDriver().findElement(By.id("localVideoContainer")); + Actions hoverOnToolbar = new Actions(participant.getDriver()); + hoverOnToolbar.moveToElement(toolbar); + hoverOnToolbar.perform(); + + openParticipantContextMenu(remoteId, true); + } } /** @@ -440,7 +459,7 @@ public void sendParticipantToBreakoutRoom(WebParticipant participantToSend, Stri { String remoteParticipantId = participantToSend.getEndpointId(); - openParticipantContextMenu(remoteParticipantId); + openParticipantContextMenu(remoteParticipantId, false); String cssSelector = MeetUIUtils.getAccessibilityCSSSelector(roomName); WebElement sendButton = TestUtils.waitForElementBy(participant.getDriver(),