Selenium Новый экземпляр Chrome для кнопки HTML Clicker - PullRequest
0 голосов
/ 25 мая 2020

Я новичок в python и пытался научиться создавать скрипт, который нажимает определенные кнопки на веб-сайте.

Судя по моим исследованиям, Selenium - отличный вариант. Это код, который я написал до сих пор:

from selenium import webdriver
import time

browser = webdriver.Chrome()
browser.get('URL')
time.sleep(0.7)

atc = browser.find_element_by_xpath('XPATH')
atc.click()
time.sleep(0.3)

check = browser.find_element_by_xpath('XPATH')
check.click()

Программа работает нормально, и я удалил некоторые специфические c код

Мне нужен Selenium для загрузки Chrome но не новый экземпляр Chrome. Мне нужен сценарий для работы на конкретном веб-сайте c, который должен быть уже авторизован, то есть в основном через мой Chrome Профиль.

Вопрос: Есть ли способ обойти эту проблему? Насколько я знаю (а это немного), проблема возникает из-за webdriver.Chrome

Есть ли способ обойти webdriver.Chrome и использовать только find_element_by_xpath? Это действительно единственная причина, по которой мне нужно это использовать. Мне не нужно загружать ссылку из Selenium, просто пусть скрипт найдет кнопку и нажмет на нее

Спасибо!

Изменить: было бы простым решением иметь мой логин уже на месте и запустить сценарий в отдельном окне, чтобы он мог обойти страницу «Пожалуйста, войдите»?

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Вы не сможете подключиться к существующему сеансу браузера.

Решение, которое я использовал в прошлом, - остановить выполнение скрипта до тех пор, пока не будет нажата клавиша, чтобы я мог вручную войдите в систему и перейдите на ожидаемую страницу.

В Python 3 используйте input():

input("Press Enter to continue...")

В Python 2 используйте raw_input():

raw_input("Press Enter to continue...")
0 голосов
/ 26 мая 2020

Информация о сеансе входа хранится в файлах cookie. Если вы хотите сохранить информацию о поваре ie, вам следует войти в систему, сбросить файлы cookie и загружать их каждый раз при запуске сценария.

Пожалуйста, обратитесь к этому ответу: { ссылка }

Итак, после того, как вы успешно сохранили свои файлы cookie, вы можете изменить свой код, чтобы он работал следующим образом:

from selenium import webdriver
import pickle
import time

browser = webdriver.Chrome()
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
    browser.add_cookie(cookie)

browser.get('URL')
time.sleep(0.7)

atc = browser.find_element_by_xpath('XPATH')
atc.click()
time.sleep(0.3)

check = browser.find_element_by_xpath('XPATH')
check.click()

Убедитесь, что вы установили пакет pickle python и cookies.pkl помещается в тот же каталог, что и ваш сценарий python.

...