【问题标题】:Python 3 + Selenium: Clicked the element but nothing happenPython 3 + Selenium:单击元素但没有任何反应
【发布时间】:2016-08-31 07:59:57
【问题描述】:

点击了元素,我没有收到任何错误,但弹出窗口(Facebook 中的“添加精选照片”弹出窗口)仍然存在。它没有关闭。

这是html代码:

<div class="_5lnf uiOverlayFooter _5a8u">
   <table class="uiGrid _51mz uiOverlayFooterGrid" cellspacing="0" cellpadding="0">
      <tbody>
          <tr class="_51mx">
             <td class="_51m- prs uiOverlayFooterMessage">
             <td class="_51m- uiOverlayFooterButtons _51mw">
                <a class="_42ft _4jy0 layerCancel uiOverlayButton _4jy3 _517h _51sy" href="#" role="button">Cancel</a>
                <button class="_42ft _4jy0 layerConfirm uiOverlayButton _4jy3 _4jy1 selected _51sy" type="submit" value="1">Save</button>
             </td>
         </tr>
      </tbody>
   </table>
</div>

这是我的代码:

driver.find_element_by_xpath(".//button[@class='_42ft _4jy0 layerConfirm uiOverlayButton _4jy3 _4jy1 selected _51sy']") 

如何点击“保存”按钮关闭弹出窗口?非常感谢:)

【问题讨论】:

    标签: python python-3.x selenium selenium-webdriver xpath


    【解决方案1】:

    您可以在点击之前滚动到按钮

    from selenium.webdriver.common.action_chains import ActionChains
    
    button = driver.find_element_by_xpath(".//button[@class='_42ft _4jy0 layerConfirm uiOverlayButton _4jy3 _4jy1 selected _51sy']")
    ActionChains(driver).move_to_element(button).perform()
    button.click()
    

    【讨论】:

    • 该死!我不需要滚动,因为弹出窗口显示在主屏幕中,但你的代码就像一个魅力:)
    • @NGuyen 也许“滚动”不是正确的术语,毕竟这个函数被称为“移动到元素”。
    • 是的。谢谢你让我开心:)
    【解决方案2】:

    试试这个

    driver.find_element_by_xpath("//button[text() = 'Save']").click()
    

    【讨论】:

    • 它显示一个错误:元素不可点击。我认为硒点击了另一个位置。
    • 它没有点击另一个位置。保存按钮是否可能有覆盖按钮的东西?例如标题,或者可能是取消按钮?
    • 它显示“其他元素将收到点击:
      ”。我点击了外部弹出窗口,在萤火虫中看到了
    • 该 div 必须以某种方式绘制在您的按钮上方。
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多