使用www.example.com()时,Selenium按钮点击不起作用button.click

u5rb5r59  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(117)

我试着加载一个页面并按下按钮,但似乎我做错了什么。我曾经知道这些事情,但新的 selenium 更新使事情变得更加困难了。
这是密码。

import selenium
from selenium import webdriver
import time
from selenium.webdriver.common.by import By


browser = webdriver.Chrome(executable_path=r"C:\Program Files (x86)\chromedriver\chromedriver.exe")

driver = webdriver.Chrome()

driver.get("https://quizlet.com/217866991/match")

time.sleep(5)

button = browser.find_element(By.CLASS_NAME,"UIButton UIButton--hero")

# Click the button
button.click()

我试了很多次想找到解决办法,但都不起作用。

y53ybaqx

y53ybaqx1#

这里有几个问题:
1.您需要使用WebDriverWaitexpected_conditions,而不是硬编码延迟。

  1. UIButtonUIButton--hero多个类名值。要使用它们,您需要使用CSS_SELECTOR或XPATH,而不是CLASS_NAME,因为CLASS_NAME接收单个值。
    下面的代码是有效的:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

options = Options()
options.add_argument("start-maximized")

webdriver_service = Service('C:\webdrivers\chromedriver.exe')
driver = webdriver.Chrome(options=options, service=webdriver_service)
wait = WebDriverWait(driver, 10)

url = "https://quizlet.com/217866991/match/"
driver.get(url)

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".UIButton.UIButton--hero"))).click()

结果屏幕为

相关问题