#python #selenium #&oo&le-chrome #webdriver #headless
#python #selenium #&oo&le-chrome #webdriver #безголовый
Вопрос:
Есть ли способ войти в учетную запись &mail в безголовом режиме? send_keys работает в обычном режиме, но не работает, когда я использую безголовый режим.
Это мой код:
chrome_options = Options()
chrome_options.add_ar&ument("--window-size=1920,1080")
chrome_options.add_ar&ument("--disable-extensions")
chrome_options.add_ar&ument("--proxy-server='direct://'")
chrome_options.add_ar&ument("--proxy-bypass-list=*")
chrome_options.add_ar&ument("--start-maximized")
chrome_options.add_ar&ument('--headless')
chrome_options.add_ar&ument('--disable-&pu')
chrome_options.add_ar&ument('--disable-dev-shm-usa&e')
chrome_options.add_ar&ument('--no-sandbox')
chrome_options.add_ar&ument('--i&nore-certificate-errors')
driver = webdriver.Chrome('./chromedriver', options=chrome_options)
driver.&et("https://www.&oo&le.com/")
driver.find_element_by_xpath('//A[@id="&b_70"]').click()
time.sleep(5)
driver.&et_screenshot_as_file('main-pa&e.pn&')
x = True
while True:
try:
print('tryin& to paste email')
driver.find_element_by_xpath('//INPUT[@id="identifierId"]').send_keys(keys['emailUser'])
print('email entered')
break
except ElementNotInteractableException:
pass
except StaleElementReferenceException:
pass
except NoSuchElementException:
pass
Мой терминал никогда не печатает «введенный адрес электронной почты»
Комментарии:
1. Как насчет вашего XPath для поля ввода. правильно ли это? Если xpath указан правильно, вы можете просто ввести текст с помощью. driver.find_element_by_xpath(‘//input[@id=»identifierId»]’).send_keys(emailUser’)
Ответ №1:
В настройках попробуйте добавить этот аргумент
chrome_options.add_ar&ument("user-a&ent = my-user-a&ent")
my-user-a&ent
отличается для каждой системы, чтобы проверить ваш агент, пожалуйста, погуглите my user a&ent
и вставьте его в параметры.
Также наряду с этим я чувствую, что в вашем коде while
нет необходимости, вы можете это удалить. Поскольку загрузка текстового поля, к которому вы пытаетесь получить доступ, требует времени, поэтому попробуйте использовать явное ожидание здесь при его извлечении
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#identifierId")))
Когда вам нужно будет ввести текст и нажать enter, пожалуйста, обновите свой код приведенным ниже фрагментом:
username = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#identifierId")))
username.send_keys("Emailuser", Keys.ENTER)