【问题标题】:Selenium unable to automate click on web elementSelenium 无法自动点击网页元素
【发布时间】:2020-08-15 23:48:09
【问题描述】:

首先我应该说我不是网络开发人员,但我已经将 Selenium 与 Python 一起使用了几个星期,并且认为我已经掌握了基础知识。

我有一个带有每周日历的页面。图片如下:

发生的情况是,您可以单击任何彩色框,这将显示一个班级的注册。它具有您可以单击以显示新信息的项目。我遇到的问题是我无法点击这些项目 - 或者,更确切地说,我不知道如何自动点击。我之前在其他情况下使用 Selenium 自动点击。

看起来如下:

如您所见,日历仍显示在背景中。也就是说,我们单击的项目不会将我们带到新页面,但我想,它会运行某种方法来显示寄存器并用数据填充它。

我的问题是:我想自动化这个过程,以便我可以点击每个项目然后抓取信息。为了做到这一点,我需要能够自动点击每个项目。

那我做了什么?当我之前完成此操作时,我已经在 web html 中搜索了相关部分,然后将 xPath 抓取到了我需要的元素。但在这里我不能这样做。为什么不?好吧,首先,我就是找不到那个元素!

看看第一列的特写:

它分为列,但我希望可点击区域是其中的一个元素。如您所见,事实并非如此。此外,可点击区域只是彩色框本身,但如果您仔细观察,您会发现该元素超出了该区域。我已经非常接近鼠标光标,以查看可点击的确切内容,而且肯定只是彩色框。

所以我根本无法获得该元素。

我以为我点击按钮后可能就能知道我们去了哪里,但是当我得到链接地址时,它只是说这是同一个页面,没有任何区别。

感谢我在这里提出了一个相当广泛的问题,但问题是我真的不知道从哪里开始。如果有人能给我至少这么多,我将不胜感激。就像我可以一次单击其中的每一个一样...我已经找到填充数据的位置,因此我可以毫无问题地抓取它。

好吧,这是希望。

编辑:我应该补充一点,有一些 JavaScript 项目(标签类型脚本,type='text/javascript')。我认为答案就在某个地方,但是有很多 Javascript,我不擅长阅读它。我很难说出什么脚本做了什么。如果我至少可以弄清楚单击该项目时运行的脚本,那么我想我会做一些事情,但我不知道。即使这样也会对我有所帮助。

【问题讨论】:

    标签: python selenium web-scraping


    【解决方案1】:

    我在移动视图中抓取 Instagram 关注者时遇到了类似的问题,在显示账户关注者名称时它是浮动框。我采用的方法是识别浮动对话框的名称并单击其中的元素。在您的 html 情况下,它可能会有所不同。

    尝试查看此链接。 Selenium Scroll inside of popup div

    【讨论】:

      【解决方案2】:

      没有 HTML 很难说。也许试试 Katalon Recorder(chrome 扩展),看看它是否可以为你检测到 xpath?也可能是你必须使用某种 javascript 来调用元素的方法

      【讨论】:

      • 页面上有 Javascript,但变量名没有帮助,我很难判断哪些代码在哪里或做什么。当然,当我单击菜单中的项目时,我不知道如何判断正在运行的代码。
      • 我也从来不需要跟踪 javascript,但这看起来很有帮助 stackoverflow.com/questions/9126723/…
      猜你喜欢
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      相关资源
      最近更新 更多