javascript - 使用 Selenium 关闭浏览器弹出窗口

标签 javascript python selenium web-scraping beautifulsoup

我正在从网站 (Investing.com) 抓取一些数据,偶尔会弹出一个窗口。我在元素中寻找可点击的按钮,但找不到任何东西。

这是元素页面中的片段,其中 <"i"> 元素是我能找到的与要关闭的“X”相关的所有元素。

...
<div class="right">
    <i class="popupCloseIcon largeBannerCloser">
        ::after
    </i>
...

我尝试过的代码如下:

from selenium.webdriver import ChromeOptions as Options
import selenium.webdriver as webdriver

chrome_options = Options()
#chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

d = webdriver.Chrome('chromedriver', options=chrome_options)
d.get("https://www.investing.com/currencies/eur-usd-technical")

iElements = d.find_elements_by_tag_name("i")
for name in iElements:
    print(name.get_attribute("class"))
    if name.get_attribute("class") == "popupCloseIcon largeBannerCloser":
        print("im here")
        name.click()

我打印文本并到达那里,所以知道我已经找到了我的元素,但最终出现以下错误:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

找不到其他可以交互的东西吗?

最佳答案

您确定这不是警报吗? 一种检查方法是尝试检查“警报”窗口中的元素。

您可以尝试以下任一方法:

driver.switchTo().alert().dismiss();
driver.switchTo().alert().accept();

如果抛出 NoAlertPresentException,弹出窗口的屏幕截图可能会帮助我们更好地为您提供帮助。

关于javascript - 使用 Selenium 关闭浏览器弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56825228/

相关文章:

java - 我试图关闭 Webdriver 上的浏览​​器实例,但无法这样做

javascript - Backbone 基本应用程序,这是应该如何完成的吗?

javascript - 需要小代码的帮助

javascript - 数数错误

python - 我怎么能总是让 numpy.ndarray.shape 返回一个二值元组?

python - 迭代类中的列表

Java:调用名称存储在变量中的方法

javascript - 从页面/注册表中删除 polymer 元素的推荐方法是什么?

python - 在 tkinter 窗口之间来回切换

java - 如何检查非输入文本元素在 Selenium 中是否可单击? ( java )