51Testing软件测试论坛

标题: java+selenium的click()事件报错,而使用鼠标悬停点击正常是为什么 [打印本页]

作者: 1005731757@qq.c    时间: 2020-1-8 16:43
标题: java+selenium的click()事件报错,而使用鼠标悬停点击正常是为什么
本帖最后由 1005731757@qq.c 于 2020-1-8 16:59 编辑

java+selenium执行元素点击事件,使用元素定位.click()方法。抛出异常org.openqa.selenium.ElementNotInteractableException: element not interactable
而使用鼠标悬停事件点击同样的元素定位却点击成功了 ,有没有大佬能解释下为什么。
源代码如下:
  public void beforeClass() {
        driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS) ;
        HouseManageLogic houseManage = new HouseManageLogic();
        houseManage.beforeTest(driver);
        HomePage homePage = new HomePage() ;
        Actions actions = new Actions(driver) ;
        actions.click(homePage.areaManageMenu(driver)).perform();   //这是不会报错可正常执行的
//        homePage.areaManageMenu(driver).click();    //这是会报错的  执行的时候会注释悬停点击事件
    }

作者: applepen    时间: 2020-1-9 10:31
虽然都是点击但是操作方式不一样。
一个是通过Actions连续动作来实现,这种方式在相应位置进行点击。不会考虑该元素是否可以被点击。
第二中是直接调用通过对象来点击,会考虑对象自身的属性。如果无法点击就会提示错误。

例:
以Chrome浏览器为例,如果点击一个input的标签。就会出现上述的错误提示。
如果点击input标签相关联的其他标签如span就能够点击。具体原因为啥会这样
我也不是很清楚。
作者: 1005731757@qq.c    时间: 2020-1-9 15:45
applepen 发表于 2020-1-9 10:31
虽然都是点击但是操作方式不一样。
一个是通过Actions连续动作来实现,这种方式在相应位置进行点击。不会 ...

确认标签本身正常绑定click()事件,而且在Actions可正常点击的情况下,使用
new WebDriverWait(driver,5).until(ExpectedConditions.visibilityOf(homePage.areaManageMenu(driver))) ;
也会抛出异常,这似乎是可见的元素被错误的判定为不可见,所以导致click()不可用




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2