首页 > 解决方案 > 元素不可点击,因为另一个元素遮住了它

问题描述

我用下面的代码解决了这个问题,我在其他帖子中没有找到解决方案,所以我试着让自己工作得很好。我现在不知道它是否是一个好的代码,因为我是 Python 和编程的新手,但它确实有效。

因为我想使用可见文本(不是按值或选项编号)选择元素,所以我使用了以下代码,其中包括通过 Xpath [contains(text(), 'text')] 查找元素,然后更改 html . 也许它对另一个有用。

self.driver.execute_script(
    "arguments[0].selected=true",
    self.driver.find_element_by_xpath(
        '//*[contains(text(), "%s" )]' % 'your_visible_text'
    ),
)

标签: pythonseleniumselenium-webdrivergeckodriver

解决方案


这个问题通常发生在 chrome 浏览器中,因为 chrome 使用点位置。当元素在 DOM 中加载但位置未固定在 UI 上时,会发生这种情况。您可以使用某些特定的解决方案来解决此问题:

  1. 等待:

    使用 WebDriverwait 和 Expected Conditions 类。

    例如:

    visiblityOfElementLocated(按定位器)

    或者

    可见性(WebElement 元素)

    在执行操作之前,我们正在等待元素出现并可见

  2. 在选择下拉菜单之前尝试最大化浏览器窗口

    驱动程序 .manage().window().maximize();

希望这有帮助。代码使用 Java selenium 请使用其对应的 Python 代码。


推荐阅读