python selenium - 无法点击同意

问题描述 投票:0回答:1

我正在尝试抓取连接后立即请求同意的特定服务器。一旦我手动单击“我同意”,一切正常。但我想自动化整个过程,包括最初的同意点击。为此,我需要找到要使用 selenium 单击的按钮 - 但我在页面源代码中找不到相应的元素。任何帮助将非常感激。

代码:

from selenium import webdriver

url = 'https://www.sreality.cz/'
driver = webdriver.Firefox()
driver.get(url)

print(driver.page_source)

输出:

<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Seznam.cz Consent</title>
    <script src="//h.seznam.cz/js/dot-small.js"></script>
    <script src="//h.seznam.cz/js/cmp2/scmp-consent.js"></script>
    <style>
      body {
        height: 100%;
        margin: 0;
        overflow: hidden;
      }

      div.scmp.scmp_Dialog-wrapper {
        background: none !important;
      }

      div.scmp_dialog-overlay {
        background-color: unset;
      }

      iframe#bg-iframe {
        height: 100vh;
        width: 100vw;
        pointer-events: none;
        -webkit-filter: blur(5px);
        filter: blur(5px);
      }
    </style>
  <style id="scmp-noscroll">.scmp-noscroll { height: 100vh; height: -webkit-fill-available; margin: 0; overflow: hidden; }</style></head>
  <body class="scmp-noscroll">
    <script>
      var backURLName = '$backUrl';

      function getCookie (cName) {
        var name = cName + '=';
        var cookies = decodeURIComponent(document.cookie);
        var allCookies = cookies.split(';');
        var len = allCookies.length;

        for (var i = 0; i < len; i++) {
          var c = allCookies[i];
          while (c.charAt(0) === ' ') {
            c = c.substring(1);
          }
          if (c.indexOf(name) === 0) {
            return c.substring(name.length);
          }
        }
        return null;
      }

      var backURL = getCookie(backURLName);

      if (backURL) {
        var iframe = document.createElement('iframe');

        iframe.setAttribute('src', backURL);
        iframe.setAttribute('id', 'bg-iframe');
        iframe.setAttribute('sandbox', '');
        iframe.setAttribute('frameborder', '0');

        document.body.appendChild(iframe);
      }
    </script>
  

<iframe src="https://h.seznam.cz/html/cmp.html?v=2.292.0" style="border: 0px none; display: none;"></iframe><div class="szn-cmp-dialog-container" style="margin: unset; padding: unset; width: unset; height: 100%;"></div></body></html>

在浏览器中:

python selenium-webdriver web-scraping webdriver
1个回答
0
投票

查看页面,同意弹出窗口似乎是一个影子 DOM 元素,隐藏在最后一个 div 中。

这是一个相关问题: 如何使用 selenium 自动化影子 DOM 元素?

© www.soinside.com 2019 - 2024. All rights reserved.