如何使用selenium-python点击不可交互的元素

问题描述 投票:0回答:1

我有一个需要自动化的门户。当我尝试单击对话框的“全部接受”按钮元素时,问题就出现了。但是,在尝试使用检查(F12)时我无法找到它。 以下是HTML代码:

<div class="sc-jsJBEP iXSECa"> <div data-testid="uc-buttons-container" style="margin: 0px -6px;" class="sc-eeDRCY fnyekb"> <button aria-label="More Information" role="button" data-testid="uc-more-button" style="margin: 0px 6px;" class="sc-dcJsrY kvOhCL">Settings</button> <button role="button" data-testid="uc-deny-all-button" style="margin: 0px 6px;" class="sc-dcJsrY dExLQu">Deny</button> <button role="button" data-testid="uc-accept-all-button" style="margin: 0px 6px;" class="sc-dcJsrY iYvtyJ">Accept All</button> </div> </div>

这是我需要点击的按钮代码:

<button role="button" data-testid="uc-accept-all-button" style="margin: 0px 6px;" class="sc-dcJsrY iYvtyJ">Accept All</button>

但是,当我尝试检查该元素时,我无法找到它。尝试了多个 xpath,但无法在任何一个中找到:

Xpath used = "//button[@data-testid='uc-accept-all-button']"

xpath_1

XPath used = "//button[text()='Accept All']"

XPath_2
这是我在 python 中的硒代码:

Selenium Code in Python accept_button = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.XPATH, XPATH_AcceptAllBtn)) ) accept_button.click()

单击该元素时我在控制台中收到的错误消息:

Error message in console 如果需要任何其他信息,请告诉我。

python selenium-webdriver automation ui-automation non-interactive
1个回答
0
投票

根据您的屏幕截图,我找到了您正在开发的网站,这对我有用。一旦你揭开了影子 DOM 的面纱,你更直接的 XPATH 方法可能也会起作用。

y = driver.find_element(By.ID,'usercentrics-root').shadow_root focus_wall = y.find_element(By.ID,'focus-lock-id') for x in focus_wall.find_elements(By.TAG_NAME,'button'): if x.get_attribute("innerText") == 'Accept All': x.click()

	
© www.soinside.com 2019 - 2024. All rights reserved.