session token fix for captcha
This commit is contained in:
+21
-10
@@ -482,23 +482,34 @@ def open_trading_maintenance_page(driver, menu_xpath):
|
||||
|
||||
wait = WebDriverWait(driver, 20)
|
||||
|
||||
trading_maintenance = wait.until(
|
||||
EC.presence_of_element_located((By.XPATH, Locator.tradingmaintenance))
|
||||
)
|
||||
driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", trading_maintenance)
|
||||
def visible_elements(xpath):
|
||||
return [element for element in driver.find_elements(By.XPATH, xpath) if element.is_displayed()]
|
||||
|
||||
submenu = driver.find_elements(By.XPATH, menu_xpath)
|
||||
submenu_visible = any(item.is_displayed() for item in submenu)
|
||||
submenu_visible = any(
|
||||
item.is_enabled() for item in visible_elements(menu_xpath)
|
||||
)
|
||||
|
||||
if not submenu_visible:
|
||||
maintenance_items = visible_elements(Locator.tradingmaintenance)
|
||||
if not maintenance_items:
|
||||
wait.until(lambda current_driver: visible_elements(Locator.tradingmaintenance))
|
||||
maintenance_items = visible_elements(Locator.tradingmaintenance)
|
||||
|
||||
maintenance = maintenance_items[0]
|
||||
driver.execute_script(
|
||||
"arguments[0].scrollIntoView({block: 'center'});", maintenance
|
||||
)
|
||||
try:
|
||||
wait.until(EC.element_to_be_clickable((By.XPATH, Locator.tradingmaintenance)))
|
||||
trading_maintenance.click()
|
||||
wait.until(lambda current_driver: maintenance.is_enabled())
|
||||
maintenance.click()
|
||||
except Exception:
|
||||
driver.execute_script("arguments[0].click();", trading_maintenance)
|
||||
driver.execute_script("arguments[0].click();", maintenance)
|
||||
|
||||
menu_item = wait.until(
|
||||
EC.element_to_be_clickable((By.XPATH, menu_xpath))
|
||||
lambda current_driver: next(
|
||||
(item for item in visible_elements(menu_xpath) if item.is_enabled()),
|
||||
False,
|
||||
)
|
||||
)
|
||||
try:
|
||||
menu_item.click()
|
||||
|
||||
Reference in New Issue
Block a user