【发布时间】:2022-02-12 03:02:51
【问题描述】:
我正在尝试单击该按钮,我尝试了多种方法,但都失败了。
<div class="item" data-id="rota_grupo">
<i class="fal fa-users">
</i>
</div>
【问题讨论】:
标签: python selenium xpath css-selectors webdriverwait
我正在尝试单击该按钮,我尝试了多种方法,但都失败了。
<div class="item" data-id="rota_grupo">
<i class="fal fa-users">
</i>
</div>
【问题讨论】:
标签: python selenium xpath css-selectors webdriverwait
您可以将您的 chromedriver 路径添加到“DRIVER_PATH”,它应该可以工作。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
CHROMEDRIVER_PATH = Service("DRIVER_PATH")
driver = webdriver.Chrome(service=CHROMEDRIVER_PATH)
button = driver.find_element(By.CLASS_NAME, "fa-users")
button.click()
【讨论】:
要定位 clickable 元素,您需要为element_to_be_clickable() 诱导WebDriverWait,您可以使用以下locator strategies 之一:
使用CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.item[data-id='rota_grupo'] > i.fal.fa-users"))).click()
使用XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='item' and @data-id='rota_grupo']/i[@class='fal fa-users']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
【讨论】: