Чтобы устранить множество ручных работ и проблем несовместимости, я бы предложил вам воспользоваться WebDriverManager, так как он автоматически загружает необходимый двоичный файл, и нам не нужно указывать какой-либо путь.
Он поддерживает такие браузеры, как Chrome, Firefox, PhantomJS, Microsoft Edge или Internet Explorer.
Как мы используем это в нашем проекте?
Для установки этого пакета требуется только «pip».
pip install webdriver_manager
Вот и все! У нас все готово. Просто импортируйте этот модуль в ваш проект на Python и начните его использовать.
Для Chrome:
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
driver = webdriver.Chrome(executable_path=ChromeDriverManager().install())
driver.get("http://www.google.com/")
print driver.title
driver.quit()
Для Firefox:
from webdriver_manager.firefox import GeckoDriverManager
from selenium import webdriver
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
driver.get("http://www.google.com/")
print driver.title
driver.quit()
Для Edge: [1113 ]
from webdriver_manager.microsoft import EdgeDriverManager
from selenium import webdriver
driver = webdriver.Edge(executable_path=EdgeDriverManager().install())
driver.get("http://www.google.com/")
print driver.title
driver.quit()
Для IE:
from webdriver_manager.microsoft import IEDriverManager
from selenium import webdriver
driver = webdriver.Ie(executable_path=IEDriverManager().install())
driver.get("http://www.google.com/")
print driver.title
driver.quit()
webdriver_manager по умолчанию пытается загрузить последнюю версию данного двоичного файла драйвера. Чтобы использовать конкретную версию драйвера, передайте версию драйвера, как показано ниже.
webdriver.Chrome(executable_path=ChromeDriverManager("2.42").install())
upstart
кажется, не идет "с USB-устройством включенные" сигналы из поля. Фокус до сих пор должен был сделать в значительной степени точно то же самое как init, и "прохладные рекламируемые функции" находятся в будущем.
От Fedora Wiki: "... получая Выскочку самостоятельно на месте теперь, даже при том, что это будет только функционировать, поскольку SysV делает теперь, позволит нам начинать плавный переход к этой модели".
К счастью можно реализовать будущее сами при наличии udev, запускает скрипт для отправки пользовательского новомодного сигнала, таким образом, выскочка может назвать резервный сценарий. У Вас мог также быть вызов udev Ваш резервный сценарий непосредственно.
udev
уже имеет простой способ запустить скрипты, когда устройства включаются и отключаются. Посмотрите переименовывают Ваше имя устройства жесткого диска usb с правилами udev. В моей системе я должен был бы использовать udevadm monitor --env
вместо учебного руководства udevmonitor --env
. После следования учебному руководству Вы создали бы другое правило udev как этот:
echo 'SUBSYSTEM=="block", ID_SERIAL_SHORT=="101A9041C67D182E", \
NAME="myusbdrive", \
RUN+="/my/backup/script $env{NAME}"' > /etc/udev/rules.d/S96-mydrive.rules
Замена ID_SERIAL_SHORT
с фактическим идентификатором Вашего устройства, и $env{NAME}
с любой udev переменной (переменными) среды Ваш сценарий должен найти устройство резервного копирования. Вам, возможно, понадобился бы к фону сценарий, чтобы не блокировать udev.
Если Вы хотите использовать выскочку, у Вас могло бы быть свое выполненное правило udev /sbin/initctl emit back-it-up VARIABLE=$env{VARIABLE} ...
и затем запишите сценарий в /etc/event.d
начало со строки start on back-it-up
.
См. также, Как я могу прислушаться 'к USB-устройству, вставленному' события в Linux в Python? для подсказок при выполнении того же с DBus. DBus мог бы быть более удобным, если Вы хотите иметь зарегистрированного пользователя, выполняет непривилегированный режим "часы для резервного диска" демон.
В Ubuntu 9.10 и новее Upstart имеет некоторые возможности udev через службу upstart-udev-bridge
.
#thumbdrive_special.conf
start on block-device-added
task
script
if [ `blkid $DEV` -eq "YOUR-THUMBDRIVES-UUID" ]; then
/home/you/bin/thumbdrive_special $DEV
fi
end script
Мне нравится, насколько простым и элегантным может быть Upstart. Однако, решение DBus может быть лучше, хотя и менее элегантно. С помощью DBus-решения вы могли бы выводить уведомления для пользователя и обеспечивать простое управление.