Skip to content

Comments

[ZEPPELIN-6398] Fix Selenium-based integration tests#5160

Open
tbonelee wants to merge 5 commits intoapache:masterfrom
tbonelee:fix-selenium-edge
Open

[ZEPPELIN-6398] Fix Selenium-based integration tests#5160
tbonelee wants to merge 5 commits intoapache:masterfrom
tbonelee:fix-selenium-edge

Conversation

@tbonelee
Copy link
Contributor

What is this PR for?

Selenium-based integration tests have been failing recently.

There were several issues:

  • The Chrome/Edge driver had a bug related to calling window.maximize(). Since a fixed window size is sufficient for our tests, I replaced it with a method that sets a fixed window size instead.
  • The element wait logic was not properly separated by intent, which caused unintended test failures. I refactored the wait methods to distinguish between presence, visibility, and clickability.
  • Browser built-in features such as the password manager could trigger alert dialogs that block test execution, so these have been disabled.

Previously, we switched to EdgeDriver (also Chromium-based) to work around the window.maximize() bug, but the same issue occurred. Therefore, I reverted back to ChromeDriver.

What type of PR is it?

Bug Fix

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-6398

How should this be tested?

  • Check test-selenium-with-spark-module-for-spark-3-5 job

Questions:

  • Does the license files need to update? No
  • Is there breaking changes for older versions? No
  • Does this needs documentation? No

Replace FluentWait with WebDriverWait using visibilityOfElementLocated to prevent ElementNotInteractableException when modal animations have not yet completed.
…arRunParagraph timeout

The previous commit replaced FluentWait with visibilityOfElementLocated for all cases, but this caused timeouts for dynamically rendered Angular elements that may exist in DOM but are not yet visible. Split into three methods:
  - pollingWait: presenceOfElementLocated (DOM existence only)
  - visibilityWait: visibilityOfElementLocated (visible + has dimensions)
  - clickableWait: elementToBeClickable (visible + enabled for interaction)
Copy link
Contributor

@Reamer Reamer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
I like that testing with Chromium is happening again.

Copy link
Contributor

@dididy dididy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants