Как получить доступ к объекту драйвера Selenium в скрипте, который опирается на объект браузера Splinter? - PullRequest
0 голосов
/ 27 февраля 2020

Я пишу свой первый Python скрипт для навигации по сайту, и до сих пор я полагался исключительно на объект браузера Splinter для таких вещей, как .find_by_xpath () и .click (). Сейчас я сталкиваюсь с некоторыми задачами, где примеры, которые я нахожу в Интернете, и этот сайт все ссылаются на объекты драйвера Selenium (например, примеры, ссылающиеся на WebDriverWait, или на строки типа «driver.execute_script (» arguments [0] .click ()). ; ", element").

У меня такой вопрос: поскольку я полагался на Splinter, я фактически нигде явно не определял объект драйвера в моем коде (т.е. все, что я написал, было browser = Browser (options) здесь), и Splinter сделал все остальное). Был ли объект драйвера, тем не менее, создан в фоновом режиме, когда я создал свой объект браузера? Если так, как я могу получить к нему доступ? Если нет, нужно ли переписывать свой код, используя только Selenium, или есть обходной путь для связывания моего существующего объекта браузера с объектом драйвера Selenium?

В более общем смысле, вы можете помочь мне понять связь между объектом браузера Splinter и объектом драйвера Selenium?

1 Ответ

1 голос
/ 27 февраля 2020

Splinter предоставляет слой абстракции для селена.

Как вы можете видеть в репозитории splinter в github

Когда splinter создает Browser, объект создает Selenium. Объект веб-драйвера.

Этот объект браузера является верхним слоем для объекта веб-драйвера селена.

Я думаю, что вы можете получить доступ к драйверу следующим образом:

from splinter import Browser
browser = Browser()
driver = browser.driver
...