Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2024, 19:16   #1
Mirconzz
Новичок
Джуниор
 
Регистрация: 05.05.2022
Сообщений: 3
По умолчанию Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?

Всем доброго дня. Подскажите, пожалуйста, как в python+selenium webdriver открыть новую вкладку в уже открытом браузере Google Chrome? Либо чтобы новая вкладка открывалась с определенным профилем?
Объясню суть. Я авторизовался на одном из сайтов. При запуске python открывает новую вкладку в повторно запущеном браузере, где я соответственно не авторизован. Как можно решить эту проблему?
Мой код на данный момент выглядит так:

Код:
 # -*- coding: utf-8 -*-
import undetected_chromedriver
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import csv
import time
user_link = input('Пример - https://site.ru/'
                  'Введите ссылку на страницу: ').strip()
file_name = input('Введите название файла для сохранения: ').strip()
options = Options()
options.headless = False
driver = undetected_chromedriver.Chrome(options=options)
Буду очень благодарен за любую помощь. Прошу не кидаться в меня камнями, я начинающий в этом деле и плохо разбираюсь. Зранее всем благодарен за ответы.
Версия Python 3.9.1
Версия Google Chrome 109.0.5414.168
Mirconzz вне форума Ответить с цитированием
Старый 08.07.2024, 02:07   #2
MakarovDs
Форумчанин
 
Аватар для MakarovDs
 
Регистрация: 10.01.2020
Сообщений: 105
По умолчанию

Mirconzz,
Чтобы открыть новую вкладку в уже открытом браузере Chrome с помощью Selenium WebDriver, выполните следующие действия:

Откройте браузер Chrome и авторизуйтесь на нужном сайте.
Запустите свой Python-скрипт.
Получите текущий дескриптор окна браузера с помощью метода driver.current_window_handle.
Откройте новую вкладку с помощью метода
Код:
driver.execute_script("window.open('');")
Переключитесь на новую вкладку с помощью метода

Код:
driver.switch_to.window(driver.window_handles[-1])
Вот пример кода, который показывает, как это сделать:

Код:
import undetected_chromedriver
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

# Откройте браузер Chrome и авторизуйтесь на нужном сайте
driver = undetected_chromedriver.Chrome()
driver.get("https://site.ru/")
# ... код авторизации ...

# Получите текущий дескриптор окна браузера
current_window = driver.current_window_handle

# Откройте новую вкладку
driver.execute_script("window.open('');")

# Переключитесь на новую вкладку
driver.switch_to.window(driver.window_handles[-1])

# Теперь вы можете взаимодействовать с новой вкладкой
# ... код взаимодействия с новой вкладкой ...

# Переключитесь обратно на исходную вкладку
driver.switch_to.window(current_window)
Обратите внимание, что в приведенном выше примере показано, как открыть новую пустую вкладку. Если вы хотите открыть новую вкладку с определенным URL-адресом, используйте следующий код:

Код:
driver.execute_script("window.open('https://example.com');")
Также обратите внимание, что для работы с профилями Chrome вам необходимо использовать параметр user-data-dir в Options. Вот пример кода, который показывает, как это сделать:

Код:
options = Options()
options.headless = False
options.add_argument("--user-data-dir=/path/to/profile")
driver = undetected_chromedriver.Chrome(options=options)
Замените /path/to/profile на фактический путь к профилю Chrome, который вы хотите использовать.

Надеюсь, это поможет!

Я использую Селениум что бы связываться с потусторонним миром для переключения случайным образом радиочастот вот мой гитхаб...
MakarovDs на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
использование Selenium WebDriver в Дельфи Pcrepair Общие вопросы Delphi 0 09.02.2023 19:02
Selenium.WebDriver - Проверить наличие элемента на странице DedPerded C# (си шарп) 2 23.07.2018 13:41
C# Selenium Webdriver. Не удается найти элемент на сайте. Denis123456789 C# (си шарп) 4 06.11.2016 15:04
incompatible types required selenium.WebDriver supertony Общие вопросы по Java, Java SE, Kotlin 1 24.04.2016 19:05
Как закрыть рекламную вкладку в браузере Opapa232 Помощь студентам 4 17.02.2014 23:57