【问题标题】:How can I click first channel in YouTube with python after searching one?搜索后如何使用 python 在 YouTube 中单击第一个频道?
【发布时间】:2021-06-21 03:52:14
【问题描述】:

我正在尝试单击结果页面顶部的第一个 YouTube 频道。我的代码如下。

from selenium import webdriver
!pip install webdriver-manager
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome('D:\chromedrive\chromedriver.exe')
keyword=['"K_Pop TV"']

for kk in keyword:
    driver.get("http://youtube.com")
    #input keyword
    driver.find_element_by_name("""search_query""").send_keys(kk)
    #search
    driver.find_element_by_id("search-icon-legacy").click()
    time.sleep(2)
    #click the first channel on result page
    driver.find_elements_by_id('avatar').click()

但是,我一直显示“'list' object has no attribute 'click'”的错误,这可能意味着它找不到频道访问的元素。有人能帮帮我吗?

【问题讨论】:

    标签: python selenium youtube webdriver click


    【解决方案1】:

    这个错误'list' object has no attribute 'click 是因为您使用了find_elements,它将返回一个网络元素列表。

    Python 中的列表没有.click() 方法

    改用find_element,它将返回一个网络元素。

    所以对现有代码进行以下更改:

    driver.find_element_by_id('avatar').click()
    

    【讨论】:

    • 感谢您回答我。但是,将driver.find_elements_by_id('avatar').click() 替换为driver.find_elements('div#avatar.style-scope.ytd-channel-renderer').click() 后,我仍然收到Message: invalid argument: invalid locator 的错误。
    • 看起来是一个css选择器,driver.find_element_by_css_selector('div# and so on ').click(),
    • 很高兴它的工作,请通过点击与投票按钮一起的复选标记来接受答案。谢谢
    • 完成。谢谢。
    猜你喜欢
    • 2015-07-12
    • 1970-01-01
    • 2021-04-07
    • 2020-07-23
    • 2014-10-15
    • 2013-08-20
    • 2019-12-14
    • 2023-01-02
    • 2014-03-07
    相关资源
    最近更新 更多