0

I'm using Selenium to scrape a website. After a couple of seconds, a cookies popup appears. I discovered that it's located under the shadow-root element. i tried many methods and heres my code

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome('driverPath')

driver.get("https://www.arbeitsagentur.de/jobsuche/suche?was=Fachlagerist%2Fin&angebotsart=1")

element = WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.TAG_NAME, "bahf-cookie-disclaimer-dpl3")))

if driver.execute_script("return arguments[0].shadowRoot", element) is not None:
    shadow_root = driver.execute_script("return arguments[0].shadowRoot", element)
    new_ele = driver.execute_script('return arguments[0].querySelector(\'button[class="ba-btn ba-btn-primary"][aria-label="Alle zulassen – Alle Cookies werden akzeptiert"]\')', shadow_root)

    
    new_ele.click()
else:
    print("Element does not have a shadow root.")

i want to click the accept button but it doesn't work

here is the web page

1 Answers1

0

Refer the code below to handle shadow root element and to click on Allow all button.

driver.get("https://www.arbeitsagentur.de/jobsuche/suche?was=Fachlagerist%2Fin&angebotsart=1")
driver.maximize_window()
time.sleep(10)

allowAll_btn = driver.execute_script("""return document.querySelector('bahf-cookie-disclaimer-dpl3').shadowRoot.querySelector('button.ba-btn.ba-btn-primary')""")
allowAll_btn.click()

Shawn
  • 4,064
  • 2
  • 11
  • 23