使用硒+;Python通过弹出窗口登录

使用硒+;Python通过弹出窗口登录,python,selenium-webdriver,selenium-chromedriver,espn,Python,Selenium Webdriver,Selenium Chromedriver,Espn,我正在尝试使用Python中的Selenium访问和登录以下网页: '' 访问页面时,会出现一个弹出窗口,询问用户的凭据。下面的代码是我到目前为止的代码 import time from selenium import webdriver user = 'test_user' pw = '*********' url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018' driver = w

我正在尝试使用Python中的Selenium访问和登录以下网页:

''

访问页面时,会出现一个弹出窗口,询问用户的凭据。下面的代码是我到目前为止的代码

import time
from selenium import webdriver

user = 'test_user'
pw = '*********'

url = 'http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018'

driver = webdriver.Chrome("C:\\Users\\abc\\Downloads\\chromedriver\\chromedriver.exe")

driver.get(url)

obj = driver.switch_to_alert

time.sleep(5)

obj.find_element_by_name('email').send_keys(user)
obj.find_element_by_name('password').send_keys(pw)
当我运行它时,我收到以下错误:

AttributeError: 'function' object has no attribute 'find_element_by_name'

基于其他stackoverflow线程,我认为我的做法是正确的。有人能帮我吗?

试试这个并检查:

obj.find_element_by_xpath('//input[@type="email"]').send_keys(user)
obj.find_element_by_xpath('//input[@type="password"]').send_keys(user)

另外,不要使用selenium中的time.sleep()模块,保持使用显式等待的习惯。

您尝试与之交互的元素位于另一个帧中。使用inspector,您可以看到它们在
中,是否缺少函数调用?例如
驱动程序。将\u切换到\u alert()
?尝试这样做会让我想到:“NoAlertPresentException:no alert open”考虑用新的错误消息替换上面的错误消息。您能详细说明使用显式等待吗?通过您的解决方案,我收到以下信息:'NoAlertPresentException:no alert open',我认为这意味着弹出式登录菜单不被视为'alert',删除此部分'obj=driver.切换到\u alert',并在以下两个语句中用driver替换obj,然后检查。显式等待引用:
driver.find_element_by_css_selector("input[type = 'email']").send_keys(user)
driver.find_element_by_css_selector("input[type = 'password']").send_keys(pw)