Профили firefox в несколько процессов не работают с selenium
Создал несколько профилей в firefox, т.к. у меня proxy с авторизацией. при попытке парсинга запускается драйвер (в 5 окнах, как в моем примере), но почему-то все работает только в первом окне. это из-за service_args=["--marionette-port", "2828"] , но без этого не работает selenium. Хотел бы узнать, как заставить работать selenium в каждом окне. (firefox решил использовать, т.к. в chrome нет поддержки работы headless вместе с дополнениями)
from selenium import webdriver
from multiprocessing import Pool
import time
import selenium.common.exceptions as SE
url = 'https://2ip.ru/'
# firefox_profiles = [line.rstrip('\n') for line in open(f'firefox_profile_paths.txt', 'r')]
firefox_profiles = [
'C:\\Users\\andrey\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\hhbhau1d.25732',
'C:\\Users\\andrey\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\wka7oeij.15448',
'C:\\Users\\andrey\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\qy79gcp3.21425',
'C:\\Users\\andrey\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\ejl06pyz.21744',
'C:\\Users\\andrey\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\57ud5de4.11721']
def start(profile):
try:
fireFoxOptions = webdriver.FirefoxOptions()
fireFoxOptions.add_argument('-profile')
fireFoxOptions.add_argument(f'{profile}')
driver = webdriver.Firefox(firefox_options=fireFoxOptions,
executable_path=f'C:\WebDrivers\geckodriver.exe',
service_args=["--marionette-port", "2828"])
while True:
driver.get(url)
ip = driver.find_element_by_xpath("//div[@class= 'ip']")
print(f'{profile} {ip.text}')
time.sleep(5)
except SE.WebDriverException as e:
print(e)
finally:
driver.close()
driver.quit()
if __name__ == '__main__':
with Pool(len(firefox_profiles)) as process:
process.map(start, firefox_profiles)
сделал скрин работы, то что все профили загружены, но выполняются в первом окне (один и тот же ip, хотя у каждого должен быть свой)
