我尝试了从警报到多个窗口处理程序的一切,但在初始阶段加载到下面的网站时,无法摆脱弹出窗口。
https://www.build.com/
你能帮我一下吗?只要到达上面的URL并处理弹出窗口,想马上关闭它。
谢谢Ankit
所需元素位于模式对话框中,因此要定位/单击元素,必须为element_to_be_clickable()
引入WebDriverWait,并且可以使用以下定位器策略之一:
解决方案
您需要诱导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
您所指的弹出窗口并不完全是"弹出"窗口。它只是加载在同一页面中的一个元素。因此,请等待该元素出现在页面中,然后单击关闭按钮。
# in Java
driver.findElement(By.xpath("//*[@class='close-icon']")).click();
# or in JavaScript
document.querySelector('.close-icon').click();
要等待任何特定元素,请检查此答案