Не работает опция --headless в selenium python
Код бота полностью работает , но когда я ставлю опцию --headless он не может найти указанные элементы `
def __init__(self,username,password):
self.username = username
self.password = password
options = Options()
options.add_argument("--headless")
self.browser = webdriver.Chrome("путь к файлу", options=options)
def login(self):
browser = self.browser
browser.get('https://www.instagram.com/')
time.sleep(random.randrange(3, 5))
username_input = browser.find_element_by_name("username")
username_input.clear()
username_input.send_keys(username)
time.sleep(2)
password_input = browser.find_element_by_name("password")
password_input.clear()
password_input.send_keys(password)
password_input = browser.find_element_by_xpath("/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[3]/button/div").click()
time.sleep(10)`
Вот что выводит ошибка:
Traceback (most recent call last):
File "c:/Users/Danila/Desktop/Личный проект/Instagram_bot/main.py", line 454, in <module>
my_bot.login()
File "c:/Users/Danila/Desktop/Личный проект/Instagram_bot/main.py", line 38, in login
username_input = browser.find_element_by_name("username")
File "C:\Users\Danila\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 496, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:\Users\Danila\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\Danila\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\Danila\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="username"]"}
(Session info: headless chrome=87.0.4280.88)
Ответы (3 шт):
Автор решения: Jack_oS
→ Ссылка
Большинство случаев неправильной работы с --headless у меня были связаны с проверкой сертификата SSL. Попробуйте добавить в код игнор ошибки:
options.add_argument('--ignore-certificate-errors')
Или добавьте все сразу:
options.add_argument("--window-size=1920,1080")
options.add_argument("--disable-extensions")
options.add_argument("--proxy-server='direct://'")
options.add_argument("--proxy-bypass-list=*")
options.add_argument("--start-maximized")
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox')
options.add_argument('--ignore-certificate-errors')
постепенно удаляя ненужное.
Автор решения: Mimoza23
→ Ссылка
Вот что получается когда запускаю с headless возможно нужно что-то сделать с самим браузером но я пока не знаю что
