Перейти к содержимому

Фотография

Не находит элемент при использовании опции headless

Selenium Webdriver

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Vladimir92

Vladimir92

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Левиков Владимир

Отправлено 21 октября 2020 - 08:50

Добрый день друзья!

Ситуация следующая: требуется заполнит поле логин на сайте gmail. 
Использую Python 3.8. и Selenium Webdriver.

Сценарий: 

  1. Запустить браузер
  2. Открыть страницу https://mail.google....il/?tab=wm
  3. Ввести логин

Если этот сценарий запускать без опции headless, то открывается браузер и всё отлично работает. Но если указываю эту опцию, то поле авторизации не находится.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By

options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome('F:\\for_X5\\chromedriver.exe', options=options)
driver.get('https://mail.google.com')
element = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,
                                                                                'section.aTzEhb input[type=email]')))
element.clear()
element.send_keys('test@gmai.com')

 

 

В чем может быть проблема?
Я добавлял скриншоты и смотрел размеры в режиме headless (он составляет 800х600) - поле всегда видно. Могут ли использоваться другие классы при таких размерах?

 

 

 


  • 0

#2 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 22 октября 2020 - 00:08

флагов маловато у вас

    if sys.argv[1] == 'headless':
      # Does one still needs X
      options.add_argument('--headless')
      options.add_argument('--disable-gpu')
      options.add_argument('--remote-debugging-port=9222')
      options.add_argument('--enable-javascript')
      options.add_argument("--user-agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:72.0) Gecko/20100101 Firefox/72.0'")
      options.add_argument('--no-sandbox')
      options.add_argument('--ignore-certificate-errors')
      options.add_argument('--allow-insecure-localhost')
Page title is: "Gmail"
Found input element: <input type="email" class="whsOnd zHQkBf" jsname="YPqjbf" autocomplete="username" spellcheck="false" tabindex="0" aria-label="Email or phone" name="identifier" value="" autocapitalize="none" id="identifierId" dir="ltr" data-initial-dir="ltr" data-initial-value="">

  • 0



Темы с аналогичным тегами Selenium, Webdriver

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных