Using selenium I need to handle this Chrome popup on a virtual machine, even when the remote desktop connection to it is closed.
I manage to get the credentials auto-filled by Chrome using my own user profile as described here.
Using pyautogui to press "enter" works when I am on the VM. The challenge is to make it work after I disconnect.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import time
from datetime import datetime, date
import dateutil.relativedelta
import numpy as np
import pandas as pd
import keyboard
import os
import pyautogui
pyautogui.FAILSAFE = False # trying to keep sending keystrokes when remote desktop minimized or closed
chrome_driver = "path/to/exe"
# initial connection
rooturl = 'https://myurl'
options = webdriver.ChromeOptions()
options.add_argument(r"--user-data-dir=C:\Users\MYUSER\AppData\Local\Google\Chrome\User Data")
options.add_argument(r'--profile-directory=Default')
driver = webdriver.Chrome(chrome_driver, chrome_options=options)
driver.implicitly_wait(20)
driver.maximize_window()
driver.get(rooturl)
windtitles = [x.title for x in pyautogui.getAllWindows()]
chromewindidx = [x for x, y in enumerate(windtitles) if 'identityproviderinternal' in y][0]
chromewind = pyautogui.getAllWindows()[chromewindidx]
chromewind.minimize()
chromewind.maximize()
time.sleep(1)
if True:
pyautogui.press('enter') # not working when I am not on the remote desktop
time.sleep(15)
I also tried using https://user:password@myurl
but it doesn't work on this particular system.
I also tried using driver.switch_to.alert.accept()
which gives NoAlertPresentException: Message: no such alert
All solutions welcome but what I think I'd be after is some (javascript
?) script to press this OK button using driver.execute
, driver.execute_script
or similar
source https://stackoverflow.com/questions/75164598/how-to-handle-sign-in-popups-with-python-selenium
Comments
Post a Comment