【问题标题】:How to click the cross on the banner at site www.di.se with Selenium?如何使用 Selenium 在 www.di.se 网站上单击横幅上的十字架?
【发布时间】:2022-01-21 05:53:17
【问题描述】:

描述:我致力于在www.di.se 现场抓取股票。网站内容被横幅阻止。我一直按代码点叉:

driver.findElement(By.id("ElementName")).click();

元素上的确切名称现在是:“svg.icon.icon--feather-close.icon-feather”。

但是最近他们做了一些事情,所以这个通过点击十字架点击离开横幅的代码不起作用。

问题 如何点击横幅上的十字使其消失?

【问题讨论】:

    标签: java selenium xpath css-selectors webdriverwait


    【解决方案1】:

    关闭图标似乎已从当前部署中移除。

    作为替代方案,您可以在横幅元素中的 Godkänn alla 元素上使用click(),将WebDriverWait 用于element_to_be_clickable(),您可以使用以下任一Locator Strategies

    • cssSelector:

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button#didomi-notice-agree-button"))).click();
      
    • xpath:

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@id='didomi-notice-agree-button']"))).click();
      

    【讨论】:

    • 我真的很想知道我们是否有相同的看法?我可以在横幅的右上角看到一个十字,但看不到“godkänn och stäng”按钮。横幅是关于他们报纸数字订阅的内部广告。
    • @torbjörnsödheim 不是土生土长的德国人,文本是 Godkänn allaiddidomi-notice-agree-button,我已将其包含在答案中。
    • 我测试了用 Edge 浏览器打开 DI 链接,我得到的广告与我在 Selenium 中使用的 Chrome 不同。可能您看到的是不同的广告,因为我们使用不同的浏览器!
    • 最后我解决了这个问题,但这是一个奇怪的错误!当程序无头运行时横幅没有弹出,所以我只评论点击,然后一切正常!奇怪的是,当没有像您描述的那样无头运行横幅时(使用带有 Selenium 的 Chrome 浏览器)。浏览网页时,我使用 Chrome 作为浏览器,但横幅与我之前用叉号描述的不同。我不明白为什么站点不同,为什么无头和非无头不同!?
    猜你喜欢
    • 2016-04-17
    • 1970-01-01
    • 2021-01-06
    • 2022-08-05
    • 1970-01-01
    • 2017-12-29
    • 2018-05-13
    • 2021-04-08
    • 1970-01-01
    相关资源
    最近更新 更多