【问题标题】:How to click hidden buttons in Python Selenium?如何单击 Python Selenium 中的隐藏按钮?
【发布时间】:2019-09-09 21:02:30
【问题描述】:

我正在使用 Selenium 进行简单的自动化。我需要点击一个特定的按钮。我不能,因为它隐藏在没有类的 div/table 中。

我附上了 html 的截图。我确实尝试了 xpath、css 选择、选择,但仍然没有。

HTML

【问题讨论】:

  • 以文本格式发布您的 html。屏幕截图不能帮助其他贡献者帮助您。请发布您的代码以及您所做的工作。
  • 参见:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: python selenium xpath css-selectors webdriverwait


【解决方案1】:

要在按钮上的click(),您必须为所需的visibility_of_element_located() 诱导WebDriverWait,您可以使用以下Locator Strategies 之一:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul.nightclubs.unstyled > li > table.table.table-condensed button.btn.btn-inverse.btn-small.pull-right"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='nightclubs unstyled']/li/table[@class='table table-condensed']//button[@class='btn btn-inverse btn-small pull-right' and contains(., 'Wejd')]"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

【讨论】:

  • 你是我的英雄 :) 谢谢先生!
【解决方案2】:

然后您可以尝试单击 div。您可以使用 XPath 来定位按钮元素(因为它有一些类,因此您可以找到它)并添加 /parent::div 让 div 点击它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 2018-03-17
    相关资源
    最近更新 更多