元素在某一时刻不可点击,因为另一个元素<span>将其遮盖了

时间:2019-06-04 06:12:40

标签: python selenium selenium-webdriver geckodriver

我使用以下代码解决了这个问题,但在其他帖子中却没有找到解决方案,因此我尝试使自己工作正常。我现在不知道这是否是一个好的代码,因为我是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'
    ),
)

1 个答案:

答案 0 :(得分:0)

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

  1. 等待:

    使用WebDriverwait和Expected Conditions类。

    例如:

    visiblityOfElementLocated(按定位器)

    visibilityOf(WebElement元素)

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

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

    driver .manage()。window()。maximize();

希望此帮助。代码是使用Java硒的,请使用其对应的Python代码。