Рубрики
Без рубрики

Избавиться от всплывающего окна для восстановления хрома при автоматизации тестирования графического интерфейса с использованием селена

Вы когда -нибудь были раздражены этим пузырем для восстановления в Chrome: в этом блоге я покажу вам … Tagged с помощью Chrome, Automation, Python, Selenium.

Вы когда -нибудь раздражали этот сеанс -пузырь 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”