[英]How do I make Selenium Python click on a button element?
所以我剛剛開始使用 Selenium for Python,我試圖點擊一個埋在幾個 div 元素中的按鈕元素; 我嘗試了很多東西,但沒有任何效果。 除了等待按鈕可點擊然后點擊它的最后一部分之外,代碼中的所有內容都有效。 我將不勝感激這里的一些幫助,謝謝。 :)
HTML:
代碼試驗:
錯誤堆棧跟蹤:
css 選擇器將成為你最好的朋友,
您應該始終希望添加盡可能多的屬性
maybe_later_css = 'button[class="btn btn-danger"]'
# type str, '<tag-name>[<attribute-name> = <attribute-value>]'
driver.find_element_by_css_selector(maybe_later_css).click()
所有元素都遵循這種格式,它的優越性和每次都按預期工作
唯一的復雜之處是當存在多個具有相同類名的按鈕時,在這種情況下,您應該找到不同的屬性來填充 [] 括號
單擊**Maybe Later**
按鈕。 誘導WebDriverWait
() 和element_to_be_clickable
() 以及跟隨 XPATH 或 CSS 選擇器。
路徑:
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='modal-footer']//button[@Class='btn btn-danger x' and text()='Maybe Later']"))).click()
CSS 選擇器:
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.modal-footer button.btn.btn-danger.x[style='danger']"))).click()
您需要導入以下庫。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
文本為“ Maybe Later ”的元素位於模態對話框中,因此要在元素上定位和click()
,您必須為element_to_be_clickable()
引入WebDriverWait ,您可以使用以下任一定位器策略:
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.modal-footer#eFooter button.btn.btn-danger.x[style='danger']"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='modal-footer' and @id='eFooter']//button[@class='btn btn-danger x' and @style='danger']"))).click()
注意:您必須添加以下導入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.