свързване на трафик от selenium_webdriver(chrome) към конкретен мрежов интерфейс/тунел

задачата е да автоматизирате някои дейности на браузъра чрез специфичен мрежов интерфейс (в linux). тъй като трябва да стартирам видео на страницата - избрах селен (python) и направих цялата рутина, за да направя възпроизвеждане на видео с помощта на селен, но приложението преминава през интерфейс по подразбиране. въпрос - как да принудя chrome да използва например tun0? забележка: Виждал съм подобен въпрос/отговори, но не успях да реша проблема си поради липса на опит в програмирането на Linux. ако е възможно, дайте ръководство стъпка по стъпка, благодаря.


person bay    schedule 26.10.2015    source източник
comment
Намерих [решение] (daniel-lange. com/archives/), за да накара уеб браузъра да използва конкретен IP.-BIND_ADDR=10.254.64.21 LD_PRELOAD=/usr/lib/bind.so firefox, тази команда стартира нов екземпляр на FF и използва специфичен net_iface , не мога да го свържа с webdriver, т.е. да стартирам като част от selenium code-driver = webdriver.Chrome(), който също е инициативен уеб-браузър, който използва net_iface по подразбиране. ВЪПРОС - как да накарам тези две команди да работят заедно?   -  person bay    schedule 27.10.2015


Отговори (1)


За да го накарам да работи за Firefox, последвах https://daniel-lange.com/archives/53-Binding-applications-to-a-specific-IP.html за създаване на /usr/lib/bind.so

След това хакнах /usr/lib/python2.6/site-packages/selenium/webdriver/firefox/firefox_binary.py до следното:

#self._firefox_env['LD_PRELOAD'] = self.NO_FOCUS_LIBRARY_NAME
self._firefox_env['LD_PRELOAD'] = "/usr/lib/bind.so"
self._firefox_env['BIND_ADDR'] = "198.58.118.236"

Коментираният ред беше оригиналният ред.

За Chrome изглежда, че бихте хакнали self.env = env в service.py

person Eric Klien    schedule 17.05.2017