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
添加回答
举报