2016-05-10 3 views
2

Я пытаюсь установить мое расширение на удаленную машину с селеном. Я нашел несколько фрагментов кода, которые сделают это возможным, но я не могу понять, как заставить его работать.Загрузка .crx в удаленный хром Selenium python

Что я пытался до сих пор это:

desired_cap = {'browser': 'Chrome', 'browser_version': '50.0', 'os': 'Windows', 'os_version': '10', 'resolution': '1366x768'} 

def officialv1(): 
    url= 'loginurl' 
     chop = webdriver.ChromeOptions() 
     chop.add_extension('./Shoppingbuddy_v5.4.2.crx') 
     driver = webdriver.Remote(command_executor=url, desired_capabilities=desired_cap, chrome_options=chop) 

С chrome_options=chop неуместны, потому что я не знаю, как нажать эту команду на удаленный браузер в сторону с command_executor и desired_capabilities аргументов.

Я застрял, указав мой удаленный хром, чтобы установить расширение с локальным файлом. Итак, как мне сообщить мой удаленный и активный хром, чтобы установить расширение, которое находится в моей локальной папке сценария.

Я нашел this question, который частично отвечает на мой вопрос, но он не говорит мне, как это сделать удаленно.

ответ

2

Ниже приведен пример, чтобы добавить расширение с Chrome с удаленным сервером:

from selenium import webdriver 

options = webdriver.ChromeOptions() 
options.add_extension(r'C:\Downloads\Adblock-Plus_v1.11.crx') 

capabilities = options.to_capabilities() 
capabilities.update({'browser_version': '50.0', 'os': 'Windows', 'os_version': '10', 'resolution': '1366x768'}) 

driver = webdriver.Remote("http://127.0.0.1:4444/wd/hub", desired_capabilities=capabilities) 
driver.get('http://stackoverflow.com/') 

Следует отметить, что предпочтительно, чтобы установить Log level к WARNING, чтобы остановить сервер от записи двоичного содержимого расширения в журнал и консоль:

java -Dselenium.LOGGER.level=WARNING -jar selenium-server-standalone-2.53.0.jar 
+0

Спасибо! это заставило его работать :) –

Смежные вопросы