Added senario name in config selector. also now digipay works
This commit is contained in:
@@ -36,13 +36,41 @@ _SEARCH_TRIGGER_CANDIDATES = [
|
||||
]
|
||||
|
||||
|
||||
_CONTAINER_FIX_JS = """
|
||||
(function() {
|
||||
function inject() {
|
||||
if (document.getElementById('__seed_fix')) return;
|
||||
var s = document.createElement('style');
|
||||
s.id = '__seed_fix';
|
||||
s.textContent = '.container{margin-left:0!important;margin-right:0!important}';
|
||||
document.head.appendChild(s);
|
||||
}
|
||||
inject();
|
||||
new MutationObserver(inject).observe(document.head, {childList: true});
|
||||
new MutationObserver(inject).observe(document.documentElement, {childList: true});
|
||||
})();
|
||||
"""
|
||||
|
||||
|
||||
def _inject_container_fix(driver: uc.Chrome) -> None:
|
||||
driver.execute_script(_CONTAINER_FIX_JS)
|
||||
|
||||
|
||||
def _wait_spa_ready(driver: uc.Chrome, timeout: float = 20.0) -> None:
|
||||
"""Wait for DOM ready + Vue/React hydration (no pending network requests)."""
|
||||
# Force desktop viewport — --window-size sets outer chrome, not inner viewport
|
||||
driver.execute_cdp_cmd("Emulation.setDeviceMetricsOverride", {
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"deviceScaleFactor": 1,
|
||||
"mobile": False,
|
||||
})
|
||||
WebDriverWait(driver, timeout).until(
|
||||
lambda d: d.execute_script("return document.readyState") == "complete"
|
||||
)
|
||||
# Extra pause for SPA JS to hydrate
|
||||
time.sleep(1.5)
|
||||
_inject_container_fix(driver)
|
||||
|
||||
|
||||
def _find_search_input(driver: uc.Chrome, wait: WebDriverWait) -> Any:
|
||||
@@ -106,6 +134,7 @@ class DigiPayFlow(DynamicFlow):
|
||||
wait_long.until(
|
||||
EC.presence_of_element_located((By.CSS_SELECTOR, _RESULTS_WAIT_CSS))
|
||||
)
|
||||
_inject_container_fix(self.driver)
|
||||
human_delay(1.0, 2.0)
|
||||
|
||||
ms = int((time.monotonic() - t0) * 1000)
|
||||
|
||||
Reference in New Issue
Block a user