Python Selenium4 ChomeDriver мультипоточный браузер не всегда нажимает на кнопку
while True:
proxy = str(TakeProxy(acc))
if not CheckProxy(proxy, acc):
continue
else:
break
useragent = useragents[random.randint(0,len(useragents))]
chrome_options = Options()
chrome_options.headless = SHOW_BROWSER
chrome_options.add_argument('--proxy-server=' + proxy)
chrome_options.add_argument('--profile-directory=' + str(time.time()))
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--incognito")
_width = random.randint(1080,2560)
_height = random.randint(1000,1500)
chrome_options.add_argument(f"--window-size={_width},{_height}")
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument(f"--user-agent='{useragent}'")
chrome_options.binary_location = f'{mainDir}\\utils\chrome\GoogleChromePortable\App\Chrome-bin\chrome.exe'
driver = undetected_chromedriver.Chrome(
executable_path=mainDir + '\\utils\\chromedriver.exe',
options=chrome_options
)
driver.set_window_size(_width, _height)
driver.timeouts.page_load = _TIMEOUT
driver.timeouts.script = _TIMEOUT
driver.timeouts.implicit_wait = _TIMEOUT
driver.set_page_load_timeout(_TIMEOUT)
driver.set_script_timeout(_TIMEOUT)
try:
driver.get("https://profile.callofduty.com/codm/loginMobileGame")
btn_signin = driver.find_element(By.ID, 'login-button')
_errs = 0
sleep(5)
while True:
captcha = ''
try:
WriteLog('Начали решать каптчу', acc, logname)
solver = TwoCaptcha('key')
captcha = solver.recaptcha(sitekey='6LfjPWwbAAAAAKhf5D1Ag5nIS-QO2M4rX52LcnDt',
url='https://profile.callofduty.com', version='v2') # , **ConfigV2)
captcha = captcha['code']
WriteLog('Решили каптчу', acc, logname)
break
except Exception as e:
if _errs >= 8:
WriteLog('Вышло время решения каптчи')
ERRORS += 1
WriteResult(acc, 'e', result_folder)
return False
WriteLog(f'Ошибка решения каптчи: {str(e)}', acc, logname)
sleep(5)
_errs += 1
continue
WriteLog('Выполняю скрипт', acc, logname)
driver.find_element(By.ID, 'username').send_keys(login)
driver.find_element(By.ID, 'password').send_keys(password)
driver.execute_script(f'''document.getElementById('g-recaptcha-response').value = "{captcha}";''')
WriteLog('Выполнил скрипт', acc, logname)
WriteLog('Отправляем форму', acc, logname)
# driver.ActionChains(driver).move_to_element(btn_signin).click(btn_signin).perform()
# btn_signin.click()
ActionChains(driver).click(btn_signin).perform()
WriteLog('Отправили форму', acc, logname)
response = driver.page_source
if 'Captcha error. Please try again' in response:
raise Exception('timeout')
if 'Registration Complete page - Mobile Game' in response:
WriteLog('Аккаунт хороший!', acc, logname)
WriteResult(acc, 'g', result_folder)
GOOD += 1
else:
WriteLog('Аккаунт плохой!', acc, logname)
WriteResult(acc, 'b', result_folder)
BAD += 1
Проблема в том что в 2 потока он проверяет 2-4 аккаунта и дальше висит при нажатии на кнопку, в чем проблема может быть?