【问题标题】:not able to click on a button for scraping using selenium and python无法单击使用 selenium 和 python 进行抓取的按钮
【发布时间】:2018-06-26 14:34:22
【问题描述】:

THIS IS THE BUTTON CODE WHICH I WANTED TO CLICK

我使用了这个代码。

login_btn1 = driver.find_elements_by_tag_name('button')
login_btn1.submit()

但他们显示错误:

AttributeError: 'list' 对象没有属性 'submit'

有人可以帮我解决这个问题。我哪里出错了?

【问题讨论】:

    标签: python-3.x selenium


    【解决方案1】:

    通过使用find_elements_by_tag_name,您正在寻找将返回列表的所有 'button' 元素。

    您需要将其替换为 find_element_by_tag_name 以检索单个 'button' 元素。 (这将是找到的第一个按钮元素)

    或者,在页面上可能存在多个按钮的情况下,您可以使用find_element_by_class_name('cdp-view-all-button') 或selenium docs 中的另一种方法按类名进行选择。

    【讨论】:

    • findElements 返回列表而不是数组。
    【解决方案2】:

    当你写这个时:

    login_btn1 = driver.find_elements_by_tag_name('button')
    

    现在login_btn1 是Web 元素 的列表。你可以有适用于列表的方法。

    由于您要单击按钮,而按钮是网络元素。你不能这样做 login_btn1.click() 。

    如果你想点击一个按钮,首先你必须找到定位器,然后有多种方法可以点击它,例如:

     button =   WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@data-track-app='discovery']")))  
     button.click()
    

    如果提供的 xpath 在 DOM 中是唯一的,那么上面的代码就可以工作。

    【讨论】:

      猜你喜欢
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 2020-07-30
      相关资源
      最近更新 更多