python - 使用 Selenium + Python 通过弹窗登录
问题描述
我正在尝试使用 Python 中的 Selenium 访问和登录以下网页:
' http://games.espn.com/ffl/leagueoffice?leagueId=579054&seasonId=2018 '
当访问该页面时,会出现一个弹出窗口,询问用户的凭据。下面的代码是我到目前为止所拥有的。
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线程,我认为我正确地处理了这个问题。有人可以帮我吗?
解决方案
您尝试与之交互的元素位于另一个框架中。使用检查器,您可以看到它们在里面<iframe id="disneyid-iframe" name="disneyid-iframe"
因此,在执行任何操作之前,您需要切换到该帧:
driver.switch_to_frame("disneyid-iframe")
然后做你需要的(注意:我更正了定位器以使用 type 属性,因为我没有看到元素具有 name 属性)
driver.find_element_by_css_selector("input[type = 'email']").send_keys(user)
driver.find_element_by_css_selector("input[type = 'password']").send_keys(pw)
请记住在完成与该框架中的元素交互后切换回默认上下文:
driver.switch_to.default_content()
推荐阅读
- machine-learning - 神经网络中的长特征向量大小
- r - 无法在 R studio 中安装包 MicrosoftML 和 mrsdeploy
- sql - 在没有活动连接的情况下打开 Microsoft Query 文件
- c++ - 使用 {} 解决函数重载问题
- ios - 为什么我的 .storyboards 在 Xcode 11.1 中变红了?
- compression - 使用 GPU 压缩文件的程序
- php - 搜索不返回结果的查询时出现 PHP 致命错误(Woocommerce 死亡空白页)
- python - 如何使用 urllib3 捕获 http 错误 404?
- c++ - 多重继承和访问不明确的元素
- javascript - 是否可以在 sap ui5 中拖放 3D 对象