html - 使用 webdriver 从焦点页面切换到确认页面
问题描述
我正在尝试用 Python 进入以下网页(https://power.larc.nasa.gov/data-access-viewer/)。确认页面(比如说“欢迎使用电源数据访问查看器!”)与主页(比如说“电源数据访问查看器”)同时出现。我使用以下代码关闭确认页面(通过单击“访问数据”按钮),但我无法成功。非常感谢任何帮助。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
driver = webdriver.Chrome()
driver.get('https://power.larc.nasa.gov/data-access-viewer/')
time.sleep(5)
driver.find_element_by_xpath("//*[@id='mysplash']/div[2]/div[2]").click()
不幸的是,我收到了以下错误。我必须补充一点,两个页面(主页面和确认页面)属于一个网页中的两个单独的类,而我认为在“Alert&Popup”的情况下有一个相同的类。因此,“切换到”功能也不起作用。此外,我应用“driver.window_handles”来获取两个页面地址,但我收到了相同的地址。
消息:没有这样的元素:无法找到元素:{"method":"xpath","selector":"//* [@id='mysplash']/div[2]/div[2]"}
再次,提前感谢您的帮助。
解决方案
您需要等待,稍后会confirmation page
出现 ,您可以通过以下方式定位元素css selector
:
driver.get("https://power.larc.nasa.gov/data-access-viewer/")
element = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'div.enable-btn')))
element.click()
导入后:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- azure - 如何使用 LUIS 和 Azure Bot 服务从 SQL Server 获取数据
- javascript - 如何用Three.JS制作曲线图片动画
- python - 聚焦打印张量的实际行和列(不是“,”形状)
- json - 如何在 PouchDB 中存储具有循环的图形?
- java - 有没有办法根据值列表(来自@configurationproperties)验证@RequestHeader
- email - Microsoft Graph API:尝试获取 Outlook 邮箱的消息,但改为获取“ResourceNotFound”
- sqlite - 如何使用 sqlite-net-pcl 和 sqliteExtensions 从 xamarin 表单中的外键表中添加/加载/删除项目
- docker - docker : 不要覆盖基础镜像入口点
- python-3.x - pytest 为所有测试存根方法
- python - Python - 正确的包管理导致代码问题?曾经工作的代码现在出错了