Conversation
WalkthroughA new documentation page has been added explaining why Selenium ChromeDriver cannot interact with 3DS authentication pages due to third-party iframes with long-running scripts, and providing a configuration workaround using the pageLoadStrategy capability. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
src/pages/docs/FAQs/web-apps/why-can’t-selenium-chromedriver-interact-with-3ds-authentication-pages.md (1)
39-60: Simplify the section heading and tighten step phrasing.
## **Steps to Add...**(Line 39) doesn’t need bold inside a heading; use## Steps to add....- Step 4 ends with “enter the following:” but doesn’t explicitly say it’s a key/value pair; consider “add the following capability:”.
Proposed change:
-## **Steps to Add the Desired Capability to the Test Case** +## Steps to add the desired capability to the test case ... -4. In the **Ad-Hoc Run** overlay, expand the **Desired Capabilities** section, enter the following: +4. In the **Ad-Hoc Run** overlay, expand **Desired Capabilities**, and add:Optional: add a one-liner note that
pageLoadStrategy: nonemay require explicit waits after navigation (since WebDriver won’t wait for full load).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/pages/docs/FAQs/web-apps/why-can’t-selenium-chromedriver-interact-with-3ds-authentication-pages.md(1 hunks)
🧰 Additional context used
🪛 LanguageTool
src/pages/docs/FAQs/web-apps/why-can’t-selenium-chromedriver-interact-with-3ds-authentication-pages.md
[uncategorized] ~33-~33: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...stops ChromeDriver from waiting for the full page load. This article discusses how to ad...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[style] ~50-~50: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...es/projects/faq/selenium_faq_3.png) 4. In the Ad-Hoc Run overlay, expand the ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🪛 markdownlint-cli2 (0.18.1)
src/pages/docs/FAQs/web-apps/why-can’t-selenium-chromedriver-interact-with-3ds-authentication-pages.md
19-19: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
24-24: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
25-25: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
26-26: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
29-29: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
30-30: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
31-31: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: CI
| --- | ||
| title: "Why Can’t Selenium ChromeDriver Interact With 3DS Authentication Pages?" | ||
| metadesc: "Learn why Selenium hangs on 3DS payment pages and how a simple desired capability prevents ChromeDriver from waiting indefinitely." | ||
| order: 24.20 | ||
| page_id: "why-cant-selenium-chromedriver-interact-with-3ds-authentication-pages?" | ||
| warning: false | ||
| contextual_links: | ||
| - type: section | ||
| name: "Contents" | ||
| - type: link | ||
| name: "Steps to Add the Desired Capability to the Test Case" | ||
| url: "#steps-to-add-the-desired-capability-to-the-test-case" | ||
| --- | ||
|
|
||
| --- | ||
|
|
There was a problem hiding this comment.
Remove redundant horizontal rules (---) to avoid confusing front matter vs separators.
You have front matter already (Line 1-13). The additional --- blocks at Line 15-16 and Line 37-38 (and trailing --- at Line 61) are likely unnecessary and can render oddly depending on the markdown pipeline.
Proposed change:
---
title: "Why Can’t Selenium ChromeDriver Interact With 3DS Authentication Pages?"
metadesc: "Learn why Selenium hangs on 3DS payment pages and how a simple desired capability prevents ChromeDriver from waiting indefinitely."
order: 24.20
page_id: "why-cant-selenium-chromedriver-interact-with-3ds-authentication-pages?"
warning: false
contextual_links:
- type: section
name: "Contents"
- type: link
name: "Steps to Add the Desired Capability to the Test Case"
url: "#steps-to-add-the-desired-capability-to-the-test-case"
---
-
----
-…and delete the later standalone --- lines unless your docs styleguide explicitly requires them.
Also applies to: 37-38, 61-61
🤖 Prompt for AI Agents
In
src/pages/docs/FAQs/web-apps/why-can’t-selenium-chromedriver-interact-with-3ds-authentication-pages.md
around lines 1-16, remove the redundant standalone '---' horizontal-rule lines
(specifically delete the extra '---' at lines 15-16 and also remove the similar
extraneous separators at lines 37-38 and 61), leaving only the single YAML front
matter block at the top; verify the file still starts and ends the front matter
correctly and contains no other isolated '---' lines.
| When you navigate to 3D Secure (3DS) authentication pages such as Visa or Mastercard, Selenium on Chrome or Edge may freeze or time out during execution. | ||
|
|
||
| **Why This Happens** | ||
|
|
||
| 3DS authentication screens load a third-party iframe that runs continuous background scripts from the payment gateway. | ||
|
|
||
| Inside these iframes: | ||
| - Long-running JavaScript and postMessage listeners are always active. | ||
| - Messages are continuously exchanged with the payment provider. | ||
| - The browser keeps processing events and never reaches a fully loaded state. | ||
|
|
||
| As a result: | ||
| - ChromeDriver waits indefinitely for the page to finish loading | ||
| - The pageLoad event never completes | ||
| - Selenium becomes unresponsive after navigation | ||
|
|
||
| To prevent Selenium from waiting indefinitely, you need to add a desired capability to your test case that stops ChromeDriver from waiting for the full page load. | ||
|
|
||
| This article discusses how to add the desired capability to the test case. | ||
|
|
There was a problem hiding this comment.
Use real headings + fix list indentation (markdownlint MD036/MD007).
- “Why This Happens” (Line 19-19) should be a heading (e.g.,
## Why this happens) rather than bold-as-heading. - The unordered lists under “Inside these iframes:” and “As a result:” are indented (Line 24-26, 29-31); markdownlint expects no leading spaces.
Proposed change:
-**Why This Happens**
+## Why this happens
...
Inside these iframes:
- - Long-running JavaScript and postMessage listeners are always active.
- - Messages are continuously exchanged with the payment provider.
- - The browser keeps processing events and never reaches a fully loaded state.
+- Long-running JavaScript and `postMessage` listeners are always active.
+- Messages are continuously exchanged with the payment provider.
+- The browser keeps processing events and never reaches a fully loaded state.
...
As a result:
- - ChromeDriver waits indefinitely for the page to finish loading
- - The pageLoad event never completes
- - Selenium becomes unresponsive after navigation
+- ChromeDriver waits indefinitely for the page to finish loading.
+- The page load event never completes.
+- Selenium becomes unresponsive after navigation.Also consider hyphenating “full-page load” (Line 33-35) if you keep it as an adjective (“…waiting for the full-page load”).
🧰 Tools
🪛 LanguageTool
[uncategorized] ~33-~33: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...stops ChromeDriver from waiting for the full page load. This article discusses how to ad...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
🪛 markdownlint-cli2 (0.18.1)
19-19: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
24-24: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
25-25: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
26-26: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
29-29: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
30-30: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
31-31: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
🤖 Prompt for AI Agents
In
src/pages/docs/FAQs/web-apps/why-can’t-selenium-chromedriver-interact-with-3ds-authentication-pages.md
around lines 17 to 36, replace the bold-as-heading "**Why This Happens**" with a
proper markdown heading (e.g., "## Why this happens"), remove the extra leading
spaces on the unordered list items under "Inside these iframes:" and "As a
result:" so they are left-aligned list items (no leading spaces), and optionally
hyphenate "full-page load" if you intend it as a compound adjective (change
"full page load" to "full-page load") in the sentence about ChromeDriver waiting
for the full page load.
Added a new FAQ - "Why Can’t Selenium ChromeDriver Interact With 3DS Authentication Pages?" to the docs as per the ticket https://testsigma.atlassian.net/browse/DOC-721
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.