【问题标题】:With selenium on python don't know how to shut down a banner which is preventing selenium from accessing the page content在 python 上使用 selenium 不知道如何关闭阻止 selenium 访问页面内容的横幅
【发布时间】:2020-11-20 10:48:33
【问题描述】:

我正在尝试使用 Chrome 浏览器使用 Selenium(使用 Python)打开一个网站,但是当我这样做时,会立即弹出一个全屏促销横幅,除非我关闭它,否则我无法访问该网站内容。 右上角有个“x”,好像是退出按钮,其实是元素::before 从它的描述来看,在我看来它不包含任何按钮元素。 如果我手动操作,同时点击 x 和横幅外页面的上部,后者关闭,但我真的不明白如何用 selenium 访问它。 我要打开的网页是https://sports.bwin.it/it/sports

不用说我很缺乏经验,所以我希望这个问题听起来不会太基础,但我无法在 selenium 文档或网络上找到解决方案;如果有人能给我任何提示,我将不胜感激。

This is a screenshot from the page I'm talking about

This is part of the html code from the web page; the element I am talking about is the one pointed by the arrow;

【问题讨论】:

  • 横幅没有为我加载,并且 html 看起来不完整。
  • 它并不总是加载,我认为这取决于一个人已经在同一会话中访问过该站点,但如果我通过 selenium 打开该站点,它会。 html 的哪一部分似乎不完整?对不起,我还是个新手
  • 我个人认为css没有帮助,但我指的是html。 IT 感觉对横幅的了解并不完整。
  • 也许可以通过某种方式来确保复制横幅,或者屏幕截图也会有所帮助。
  • 和往常一样,检查它是否是 iframe。

标签: python selenium


【解决方案1】:

根据您的屏幕截图,您要使用的 xpath 如下所示:

//*[@data-id='dj_sports_c_ovl_br']//span

完整的代码是这样的:

element = WebDriverWait(driver, 20).until(
    EC.element_to_be_clickable((By.XPATH, "//*[@data-id='dj_sports_c_ovl_br']//span"))
)
element.click();

【讨论】:

  • 谢谢它有效。如果不是太麻烦,请问您是如何识别元素的?
  • 我的意思是,我当然在你指向它的元素中找到了它,但是我怎么能理解那个位是可点击元素呢?
  • 好问题。您可以随时检查是否附加了点击事件
猜你喜欢
  • 2021-01-06
  • 2021-02-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-21
  • 2014-06-26
  • 2014-11-25
  • 2012-03-20
  • 1970-01-01
相关资源
最近更新 更多