一尘不染

ElementNotVisibleException:Selenium Python

selenium

我已经检查了所有以前的类似问题,它们不适用于我的情况。

       try:
          element = wait.until(
          EC.presence_of_element_located((By.XPATH, "//*[@id='_ariaId_73.folder'] | //*[@id='_ariaId_133.folder']"))
       )
       except: 
          print "403 : Monitoring Not Found"

    element.click()

它是不会进入异常块还可以,但它仍然抛出ElementNotVisibleExceptionelement.click()方法。


阅读 444

收藏
2020-06-26

共1个答案

一尘不染

关于解决方案的几句话:

  1. 与预期子句的条件presence_of_element_located()涉及 用于检查的元件是存在于页面的DOM的期望。 这并不一定意味着该元素是可见的。一旦找到元素,用于查找元素的定位器将返回WebElement。因此,我们必须更改与 期望 相关的子句,presence_of_element_located()检查用于检查已知在页面DOM中存在的元素是否可见。 可见性意味着不仅显示元素,而且其高度和宽度都大于0。element是WebElement在可见时返回(相同)WebElementvisibility_of_element_located() __
  2. 展望未来,您已经尝试click()WebElement 调用方法。因此,代替presence_of_element_located()我们将使用该 element_to_be_clickable() 子句。
  3. 这是您自己的代码,做了一些小的更改:
        try:
        element = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id='_ariaId_73.folder'] | //*[@id='_ariaId_133.folder']")))
    except: 
        print "403 : Monitoring Not Found"
    element.click()
2020-06-26