我正在尝试自动登录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<mpl=default<mplcache=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"}
很明显,这意味着找不到该元素,但是为什么呢?我什至有明确的等待来确保它加载页面。