我試著點(diǎn)擊cookie accept按鈕,但是selenium沒有點(diǎn)擊它。有人能幫我嗎?
driver = webdriver.Chrome(path)
driver.get('https://www.bisnode.de/upik/')
try:
buttonlink = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "onetrust-accept-btn-handler"))
)
buttonlink.click()
time.sleep(10)
except:
driver.quit()
編輯: 有人提到我使用一個(gè)存在兩次的ID,所以我應(yīng)該用另一個(gè)css選擇器。所以我更換了線路,但是它仍然不工作。
buttonlink = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, "button#onetrust-accept-btn-handler"))
)
buttonlink.click()
它打開了chrome瀏覽器和網(wǎng)頁(yè),但隨后就退出了。沒有錯(cuò)誤輸出。
這里有2個(gè)元素具有onetrust-accept-btn-handler ID,因此您必須更改您的定位器。 試試這個(gè)css_selector按鈕#onetrust-accept-btn-handler
我花了30分鐘來解決這個(gè)問題。
問題是,在執(zhí)行相應(yīng)的腳本之前,按鈕是不可點(diǎn)擊的。 因此,這里需要等待,直到父div的樣式變?yōu)?底部:1英尺
解決方案:
import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
url = 'https://www.bisnode.de/upik/'
driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
driver.get(url)
wait = WebDriverWait(driver, 15)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[style='bottom: 1rem'] button[id*='onetrust-accept-btn-handler']")))
driver.find_element_by_css_selector("div[style='bottom: 1rem'] button[id*='onetrust-accept-btn-handler']").click()
time.sleep(10)
driver.quit()
我不得不更改CSS_SELECTOR:
WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.ID, "onetrust-banner-sdk")))
time.sleep(5)
acceptbutton = browser.find_element(By.CSS_SELECTOR,"button#onetrust-accept-btn-handler")
acceptbutton.click()
上一篇python 有向圖遍歷
下一篇vue de name