首页 > 解决方案 > 使用 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]"}

再次,提前感谢您的帮助。

问题示意图

标签: htmlpython-3.xselenium

解决方案


您需要等待,稍后会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

推荐阅读