如何在 twitch 上定位第一个通道点 button/icon。tv/esl_csgo 使用 Selenium 和 Python

How to locate the first channel points button/icon on twitch.tv/esl_csgo using Selenium and Python

twitch.tv/esl_csgo 我想点击频道点 button/icon 但它一直给我错误 消息:没有这样的元素:无法定位元素 我已经搜索并尝试了 4 个多小时的各种查找元素的方法,但我没有找到点击该元素的方法

这是我的代码,但它不能点击我想要的按钮,非常感谢帮助。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import time
     
options = Options()
options.add_argument("--user-data-dir=C:\Users\Me\Desktop\UserData")
options.page_load_strategy = 'normal'
driver = webdriver.Chrome(options=options)
driver.get("https://twitch.tv/esl_csgo")

time.sleep(10)




element = driver.find_element_by_xpath('//*[@id="c7037441c8fd58e7e0ac6326babcf03d"]/div/div[1]/div/div/div/div/div/section/div/div[5]/div[2]/div[2]/div[1]/div/div/div/div[1]/div[2]/button/div/div/div/div[2]/span')

element.click()

点击第一个通道点button/icon你需要诱导WebDriverWait for the and you can use either of the following :

  • 使用CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[class^='InjectLayout-sc'] > div span[data-test-selector]"))).click()
    
  • 使用XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[starts-with(@class, 'InjectLayout-sc')]/div//span[@data-test-selector]"))).click()
    
  • 注意:您必须添加以下导入:

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