我的HTML代码如下:
<button aria-label="Nur zuhören" aria-disabled="false" class=
"jumbo--Z12Rgj4 buttonWrapper--x8uow audioBtn--1H6rCK">
并且我想单击带有以下Python代码的按钮:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
wait(driver, 20).until(EC.element_to_be_clickable((By.CLASS_NAME, "jumbo--Z12Rgj4 buttonWrapper--x8uow audioBtn--1H6rCK"))).click
但它不起作用
答案 0 :(得分:0)
如果要查找具有多个类名的元素,则可以使用XPATH。
我将HTML简化为<button class="aaa bbb ccc">
然后,您可以使用(By.XPATH, "//button[contains(@class, 'aaa') and contains(@class, 'bbb') and contains(@class, 'ccc')]")
查找此按钮。
答案 1 :(得分:0)
尝试捕获Webelement中的元素,然后尝试执行期望的条件命令。它应该可以工作
click_ele = driver.find_element_by_class_name(巨型--Z12Rgj4 buttonWrapper--x8uow audioBtn--1H6rCK)
wait(驱动程序,20).until(EC.element_to_be_clickable(click_ele.click)))
wait(驱动程序,20).until(EC.element_to_be_clickable((By.CLASS_NAME,“ jumbo--Z12Rgj4 buttonWrapper--x8uow audioBtn--1H6rCK”)))。单击
.click可能不是下拉菜单中的一个选项,因为它带有2个位置参数
答案 2 :(得分:0)
硒无法通过multiple class names
找到class name
,而是使用css selector.
在下面的 css 选择器中尝试。
wait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".jumbo--Z12Rgj4.buttonWrapper--x8uow.audioBtn--1H6rCK"))).click()
OR
wait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[aria-label='Nur zuhören']"))).click()
希望这会有所帮助。