4 回答

TA貢獻1848條經驗 獲得超6個贊
您可以通過文本值找到該按鈕。
試試這個代碼:
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://member.superfit.club/")
#driver.find_element_by_link_text("Akzeptieren").click()
driver.find_element_by_xpath('//button[contains(text(), "Akzeptieren")]').click()

TA貢獻1788條經驗 獲得超4個贊
你為什么不直接使用xpath
而不是link text
?
driver.find_element_by_xpath('//*[@id="CookieModelButtom"]/div/div/div/div/button[1]').click()
這工作得很好。我建議您使用xpaths
orCSS Selectors
代替Link Texts
。

TA貢獻1864條經驗 獲得超6個贊
您顯示的代碼不反映錯誤堆棧跟蹤中的內容。顯然,你是find_element_by_link_text這樣調用的:
driver.get("https://member.superfit.club/").find_element_by_link_text("Akzeptieren").click()
當你應該像你自己展示的那樣做時:
driver.get("https://member.superfit.club/")
driver.find_element_by_link_text("Akzeptieren").click()

TA貢獻1890條經驗 獲得超9個贊
find_element_by_link_text() 適用于錨元素而不是按鈕元素。您與之交互的元素是按鈕,因此您可以識別 ID、NAME、XPATH 或 CSS 選擇器。
我建議你使用WebDriverWait()and element_to_be_clickable() 和下面的 css 選擇器。
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"button.btn.btn-success"))).click()
您需要導入以下庫。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
添加回答
舉報