如何在 Selenium WebDriver 中处理弹出窗口
How to Handle Popup in Selenium WebDriver
我尝试了从警报到多个 window 处理程序的所有方法,但无法摆脱我们在初始阶段加载到网站下方时出现的弹出窗口。
你能帮我解决这个问题吗?URL 并处理弹出窗口,想立即关闭它。
谢谢
安琪
您所指的弹出窗口不完全是 "Pop Up" window。它只是在同一页面中加载的一个元素。所以,等到该元素出现在页面中,然后单击关闭按钮。
# in Java
driver.findElement(By.xpath("//*[@class='close-icon']")).click();
# or in JavaScript
document.querySelector('.close-icon').click();
要等待任何特定元素,请选中此 answer
所需元素在 Modal Dialog Box so to locate/click on the element you have to induce WebDriverWait for the element_to_be_clickable()
and you can use either of the following :
内
解决方案
您需要引入 WebDriverWait 以使所需的 元素可点击,您可以使用以下任一解决方案:
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.close.js-modal-close. > span.close-icon"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='close js-modal-close ']/span[@class='close-icon']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我尝试了从警报到多个 window 处理程序的所有方法,但无法摆脱我们在初始阶段加载到网站下方时出现的弹出窗口。
你能帮我解决这个问题吗?URL 并处理弹出窗口,想立即关闭它。
谢谢 安琪
您所指的弹出窗口不完全是 "Pop Up" window。它只是在同一页面中加载的一个元素。所以,等到该元素出现在页面中,然后单击关闭按钮。
# in Java
driver.findElement(By.xpath("//*[@class='close-icon']")).click();
# or in JavaScript
document.querySelector('.close-icon').click();
要等待任何特定元素,请选中此 answer
所需元素在 Modal Dialog Box so to locate/click on the element you have to induce WebDriverWait for the element_to_be_clickable()
and you can use either of the following
解决方案
您需要引入 WebDriverWait 以使所需的 元素可点击,您可以使用以下任一解决方案:
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.close.js-modal-close. > span.close-icon"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='close js-modal-close ']/span[@class='close-icon']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC