【问题标题】:Selenium and HTML硒和 HTML
【发布时间】:2021-05-05 14:16:54
【问题描述】:

我一直在使用 selenium 尝试从公司数据数据库中抓取一些信息。该数据库是私有的,它需要密码,所以很遗憾,我不能共享整个 python 代码,也不能共享整个 HTML 代码。

这是我的问题所需的 HTML 代码部分

<li>
   <a id="reportsForm:j_idt320:3:j_idt325" href="#" class="ui-commandlink ui-widget nav-item " onclick="PrimeFaces.addSubmitParam('reportsForm',{'reportsForm:j_idt320:3:j_idt325':'reportsForm:j_idt320:3:j_idt325'}).submit('reportsForm','_blank');return false;" target="_blank">
    <span id="reportsForm:j_idt320:3:l2" data-hasqtip="reportsForm:j_idt320:3:tooltipID">Avaliação de Risco Plus</span></a>
</li>

在这部分代码中,我需要点击一个链接的文本,我尝试了无数种方式(包括隐式等待、通过类名、id、xpath等查找元素……),我实现了找到元素的唯一方法是通过以下命令:

afg = driver.find_element_by_link_text('Avaliação de Risco Plus')

但是,当我尝试点击它时,我遇到了以下错误消息:

Message: element click intercepted: Element <a href="#" onclick="jsf.util.chain(this,event,'trackOutboundLink(\'Relatório Sugerido Alerta\', \'Click\', \'...\', \'\', \'_blank\');','mojarra.jsfcljs(document.getElementById(\'companyForm\'),{\'companyForm:tableLastUpdate:1:j_idt262\':\'companyForm:tableLastUpdate:1:j_idt262\'},\'_blank\')');return false">Avaliação de Risco Plus</a> is not clickable at point (550, 745). Other element would receive the click: <div id="fundo">...</div>

我知道 python 不允许我点击我定义为 afg 的内容,因为它被 href = "#" 上的链接截获。但这正是我要点击的链接!

我该如何解决这个问题?

感谢您的帮助:)

【问题讨论】:

  • 那个元素在 viewPoint 中吗?还是您必须滚动才能看到该元素?
  • 最初是的。但是我最大化窗口以便已经看到它,我遇到了同样的问题。

标签: python html selenium


【解决方案1】:

如果它还在,你可以试试下面的代码:

element_to_be_clickable = driver.find_element_by_link_text('Avaliação de Risco Plus')

ActionChains(driver).move_to_element(element_to_be_clickable).click().perform()

ActionChains(driver).move_to_element(driver.find_element_by_link_text('Avaliação de Risco Plus')).click().perform()

【讨论】:

  • 感谢您的意见!它说我使用了无效的选择器....还有什么我可以尝试的吗?
  • 天哪,我没有看到第二个选项!有效!!!!!非常感谢!!!!!!
猜你喜欢
  • 2021-06-20
  • 2020-07-16
  • 2012-10-04
  • 2015-10-10
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多