Не могу создать две сессии - одна не работает, другая работает.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Не могу создать две сессии - одна не работает, другая работает.

Сообщение Anonymous »

У меня есть запрос на публикацию в представлениях Django, из которого я вызываю Selenium WebDriver. Я запускаю его в Linux.

Я установил ДИСПЛЕЙ в среде ОС.

Теперь, когда я вызываю запрос, браузер Selenium открывается нормально, но когда драйвер все еще открыт, и я снова вызываю запрос, браузер Selenium не может создать сеанс.

DJANGO использует приложение wsgi.

Переключение на asgi может не работать.
Я ожидал, что будут открыты два драйвера, но на втором не получилось.
Поточность здесь не является проблемой

class Test(generics.CreateAPIView):

def create(self, request, *args, **kwargs):
searchDict = dict(request.data)
profile = searchDict['profile']
threading.Thread(target=self.runDriver, args = (profile,)).start()
return Response(status=status.HTTP_200_OK)
def runDriver(self, profile):
br = Driver()
useragent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0'

profile_name = profile
username = 'samsan'
password = '##1234sAMIUL.'
br.createUCDriver(useragent, profile_name)
dr = br.ucDriver
dr.get('https://www.google.com/')

time.sleep(10)
dr.get(dr.current_url)

Это класс Driver:
class Driver:
def __init__(self):
self.driver = None
self.ucDriver = None
self.waitTime = 10
# self.logger = Logger()
# self.executable = input("Please enter chrome executable path: ")
self.executable = "seleniumDriver/chromedriver-mac-arm64/chromedriver"
def createUCDriver(self, user_agent=None, profile_name='Profile 2'):

# os.environ['DISPLAY'] = ':10.0'
options = webdriver.ChromeOptions()
if user_agent:
options.add_argument(f'--user-agent={user_agent}')

print('sys', sys.platform)
if sys.platform == 'darwin':
options.add_argument('--user-data-dir=/Users/yourusername/Library/Application Support/Google/Chrome')
elif sys.platform == 'linux' or sys.platform == 'linux2':
# options.add_argument('--user-data-dir=/home/samiul/.config/google-chrome')
options.add_argument(f'--user-data-dir={Path(__file__).parent.parent.parent / "application" / "local" / "nfs"}')
elif sys.platform == 'win32' or sys.platform == 'win64':
options.add_argument('--user-data-dir=C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data')

options.add_argument(f'--profile-directory={profile_name}')
options.add_argument('--hide-crash-restore-bubble')
options.add_argument("--disable-popup-blocking")
options.add_argument('--disable-features=InfiniteSessionRestore')
options.add_argument('--disable-features=PrivacySandboxSettings4')
if sys.platform == 'darwin':
print('mac')
driver = uc.Chrome(options=options, use_subprocess=True)
elif sys.platform == 'linux' or sys.platform == 'linux2':
service = Service(executable_path=str(Path(__file__).parent/ 'chromeDriver'/ 'chromedriver-linux64' / 'chromedriver'))
print('linux')
# driver = uc.Chrome(options=options, use_subprocess=True, driver_executable_path=Path(__file__).parent/ 'chromeDriver'/ 'chromedriver-linux64' / 'chromedriver')
driver = uc.Chrome(options=options, use_subprocess=True, service = service)
elif sys.platform == 'win32' or sys.platform == 'win64':
print('windows')
try:
driver = uc.Chrome(options=options, use_subprocess=True, driver_executable_path=str(Path(__file__).parent/ 'chromeDriver'/ 'chromedriver-win32' / 'chromedriver.exe'))
except Exception as e:
print('Error in starting Chrome', e)
self.ucDriver = driver
self.ucDriver.set_page_load_timeout(1.5 * 60)


Подробнее здесь: https://stackoverflow.com/questions/790 ... -one-works
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Не могу создать две сессии - одна не работает, другая работает.
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Не могу создать две сессии - одна не работает, другая работает.
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Не могу создать две сессии - одна не работает, другая работает.
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Не могу создать две сессии - одна не работает, другая работает.
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Две сессии в одном клиенте, только одна из них получает сообщения от определенной группы.
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»