如何处理Selenium WebDriver中的弹出窗口



我尝试了从警报到多个窗口处理程序的一切,但在初始阶段加载到下面的网站时,无法摆脱弹出窗口。

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();

要等待任何特定元素,请检查此答案

相关内容

  • 没有找到相关文章

最新更新