Вы когда -нибудь раздражали этот сеанс -пузырь Restore в Chrome:
В этом блоге я покажу вам, как справиться с этим.
Обычно, когда вы автоматизируете веб -приложение с помощью браузера, это всплывающее окно появляется из -за Driver.quit () и потому, что вы используете в каталоге пользовательских данных. (Если нет, этот пузырь не появится, как в моем опыте).
Иногда нам нужно использовать каталог пользовательских данных, например, нам нужны некоторые конкретные расширения или некоторые зарегистрированные данные.
1. Рукономно:
Чтобы отключить всплывающее окно вручную, в Windows вам необходимо перейти к каталогу пользовательских данных по умолчанию.
Для меня это похоже на: c: \ users \ your_name \ appdata \ local \ chrome \ browser \ пользовательские данные \ по умолчанию В этой папке откройте настройки файлов
Вам нужно изменить эти значения на:
” exit_type “:” нет “,
“Exited_Cleanly”: True,
После этого в следующий раз это не произойдет в следующий раз.
Но Chrome Browser может переопределить это значение, поэтому, если вы не хотите изменить его навсегда, убедитесь, что вы устанавливаете файл как только для чтения.
2. Аувтомация:
В случае, если вы выполняете тест на автоматизацию с Selenium, вам нужно будет сделать какой -то код.
Мы будем работать над тем, как изменить текст в файле предпочтений.
def modify_file_as_text(text_file_path, text_to_search, replacement_text): with fileinput.FileInput(text_file_path, inplace=True, backup='.bak') as file: for line in file: print(line.replace(text_to_search, replacement_text), end='')
Эта функция найдет text_file_path и замените Wante_text_change на новый
В настоящее время я использую Selenium с Pytest, чтобы настройка файла перед открытым браузером будет выглядеть так:
@pytest.fixture(scope='session') @pytest.mark.usefixtures('set_up_before_run_user_browser', 'get_use_data_path') def browser(get_use_data_path): global driver global user_data_path global block_origin_extension_path if driver is None: chrome_options = sele_webdriver.ChromeOptions() chrome_options.add_argument("--window-size=1920,1080") chrome_options.add_argument("--proxy-server='direct://'") chrome_options.add_argument("--proxy-bypass-list=*") chrome_options.add_argument("--start-maximized") chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--ignore-certificate-errors') chrome_options.add_argument("--allow-insecure-localhost") chrome_options.add_argument('--disable-application-cache') chrome_options.add_argument("--disable-session-crashed-bubble") chrome_options.add_experimental_option("excludeSwitches", ['enable-automation']) if get_use_data_path is True or get_use_data_path is None: import subprocess prog = subprocess.Popen("taskkill /im chrome.exe /f", stdout=subprocess.PIPE, stderr=subprocess.PIPE) prog.communicate() # Returns (stdoutdata, stderrdata): stdout and stderr are ignored, here set_up_before_run_user_browser() chrome_options.add_argument('--user-data-dir=' + user_data_path) modify_file_as_text(user_data_path + '\\Default\\Preferences', 'Crashed', 'none') driver = webdriver.Chrome(options=chrome_options) driver.maximize_window() driver.set_page_load_timeout(40) yield driver driver.quit()
В вышеперечисленном есть много, но вам нужно только отметить 2 вещи, сначала нам нужно установить каталог пользовательских данных
chrome_options.add_argument('--user-data-dir=' + user_data_path)
Во -вторых, вызовите функцию заменить текст:
modify_file_as_text(user_data_path + '\\Default\\Preferences', 'Crashed', 'none')
Вот и все. Надеюсь, это поможет. Спасибо, ребята и девчонки!
Примечания: Если вы чувствуете, что этот блог поможет вам и хотите выразить признательность, не стесняйтесь заходить:
Это поможет мне внести более ценное содержание.
Оригинал: “https://dev.to/cuongld2/get-rid-of-chrome-restore-bubble-popup-when-automate-gui-test-using-selenium-3pmh”