javascript - Div 覆盖空白区域和元素,因此看起来无法点击(Python Selenium)

标签 javascript python html python-3.x selenium

请帮忙,因为这让我发疯。

这应该很简单 - 单击一个元素。但对于我的一生,我找不到办法做到这一点。

我可以用我尝试过的每种方法找到它,但我似乎无法单击它。我尝试过通过类名、XPath 类、XPath 范围文本,我尝试过使用 javascript 强制单击。没有什么。这个蓝色的“确定”按钮似乎无法点击。

我开始认为这可能是因为 div 形状,我将其附加在图像中。看起来 div 也位于按钮的左侧,所以也许只是单击按钮旁边的空白区域(无论出于何种原因)也恰好被 div 覆盖?如果是这样,有没有办法指定点击 div 的哪一部分?

这是我尝试过的:

browser.find_element_by_class_name('ok')

browser.find_element(By.XPATH, "//div[@class='ok']")

browser.execute_script("arguments[0].click();",
                                  WebDriverWait(browser, 10).until(EC.element_to_be_clickable
                                                                   ((By.Class, "ok"))))

browser.FindElement(By.XPath("//div[@class='ok']/span[@class='OK']"));

HTML code for element in question The OK button I am trying to click the div covering blank space to the left of the button

最佳答案

您需要定位 <span> 的文本标签:

xpath = "//div[@class='ok']/span[contains(., 'OK')]";

browser.find_element_by_xpath(xpath);

I get the element not interactable error still?

您需要“等待”该元素才能单击。浏览器和 Selenium 之间的竞争条件可能会导致元素在您能够单击之前就已位于 DOM 中,例如,如果您有一个淡入对象的动画。

xpath = "//div[@class='ok']/span[contains(., 'OK')]";
wait = WebDriverWait(browser, 10);
okButton = wait.until(EC.element_to_be_clickable(xpath));

okButton.click();

关于javascript - Div 覆盖空白区域和元素,因此看起来无法点击(Python Selenium),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59739903/

相关文章:

python - 已声明但未实例化的类变量

html - 如何使 Bootstrap 仅适用于网站的一个部分?

Javascript css marginTop 过渡不触发动画

javascript - Lazy.js:使用范围进行压缩

javascript - Firebase 未在 Electron 主进程中定义

javascript - 如何将数据作为导航 Prop 传递(不起作用)?

python - 修改 pandas 数据框中的 datetimeindex 中的小时

python - 解析数据帧和 fastafile

html - Safari 上不显示输入和文本区域边框

jquery - 一页网站定位问题firefox和IE