无法使用无头模式找到元素,但是当不使用无头模式时发现元素

时间:2018-12-26 03:50:19

标签: python selenium

我正在尝试自动登录Gmail。下面的代码不是完美无缺的。但是,当我在选项参数中添加(“ --headless”)时,找不到元素。

options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument("--test-type")
options.add_argument("start-maximized")
options.add_argument('--log-level=3')

options.add_argument('disable-infobars')
browser=webdriver.Chrome(chrome_options=options)
browser.get("https://accounts.google.com/ServiceLogin/identifier?            service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1&flowName=GlifWebSignIn&flowEntry=AddSession")
def login():
    lines = open('C:\\Project domCAP\\gmail_usernames.txt').read().splitlines()
    user =random.choice(lines)

    time.sleep(5)
    login = browser.find_element_by_name('identifier')
    login.send_keys(user)

此代码没有无头参数。它从文本文件中获取用户名,并使用密码(省略代码)登录。所有这一切都运行良好。但是,一旦我尝试使用无头Chrome,它就会失败,并显示以下错误:

  selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"identifier"}

很明显,这意味着找不到该元素,但是为什么呢?我什至有明确的等待来确保它加载页面。

0 个答案:

没有答案