o
    B_i                     @   s>   d dl mZ ddlmZ ddlmZmZ deddfdd	ZdS )
    )Page   )shot)log_steppausepagereturnNc                 C   s   |  d}|  d}| jddd |j|j |j|j t| |d td|  t|d |  d}|	 r?|jj
d	d
 t| |d td|  t|d |  d}|	 s]|  d}|	 setd|j
  | jddd t| |d td|  d S )Nz:input[name="username"], input#username, input[type="text"]z>input[name="password"], input#password, input[type="password"]a  () => {
            const u = document.querySelector('input[name="username"],input#username,input[type="text"]');
            const p = document.querySelector('input[name="password"],input#password,input[type="password"]');
            if (!u || !p) return false;
            const uv = u.offsetParent !== null;
            const pv = p.offsetParent !== null;
            return uv && pv;
        }i0u  )timeoutzstep2-login-filledzLogin filledz label:has-text("Remember Login")T)forcezstep3-remember-loginzRemember Login clickedzXbutton:has-text("Office Login"), button:has-text("OFFICE LOGIN"), button.af-btn--primaryz)#loginInstance form button[type="submit"]zOffice Login button not founda  () => {
            const txt = document.body && document.body.innerText ? document.body.innerText : '';
            const postLogin = document.querySelector('#postLoginType');
            const v = postLogin ? (postLogin.value || '') : '';
            const isVerifyMFA = v === 'verifyMFA' || txt.includes('Verify Your Account');
            const isTerminateSessions = v === 'terminateSessions';
            const inIMS = location.href.includes('/ims/');
            const hasPwVisible = Array.from(document.querySelectorAll('input[type="password"]'))
              .some(e => e.offsetParent !== null);
            if (isVerifyMFA) return true;
            if (isTerminateSessions) return true;
            if (inIMS && !hasPwVisible) return true;
            return false;
        }i`  zstep4-after-login-click)locatorwait_for_functionfirstfillusernamepasswordr   r   r   countclickRuntimeError)r   cfgrun_diruserpwlblbtn r   P/var/www/html/flask_server/apps/aroflo_connector_app/ui_automation/auth/login.py
fill_login   s>   








r   )playwright.sync_apir   core.artifactsr   core.logr   r   r   r   r   r   r   <module>   s   