【发布时间】:2015-10-25 05:08:11
【问题描述】:
我正在尝试访问应用程序中的屏幕,当我将鼠标悬停在选项卡上并单击其中一个选项时会出现该屏幕。我使用 Actions 方法使用 selenium 执行此操作。这是我的代码:
element=driver.findElement(By.id("tab"));
Actions hoverover=new Actions(driver);
hoverover.moveToElement(element).moveToElement(driver.findElement(By.id("menu"))).click().build().perform();
当我登录应用程序并直接调用此选项卡时,我可以毫无问题地访问它。但是当我从应用程序中的不同屏幕访问此选项卡时,就会出现问题。
每当我从应用程序中的不同页面访问悬停页面时,有时页面会正确加载,但大多数时候会失败,并且我会收到“没有此类元素”或“过时元素引用”错误。
我真的不确定它有时如何能够毫无问题地访问选项卡,以及有时它如何引发错误。请在此处指导我并让我知道是否还有其他功能(任何其他功能/或 Actions 的替代方法?)我可以这样做,以便鼠标悬停单击始终有效。
编辑:我尝试同时使用显式和隐式等待,甚至 thread.sleep,但徒劳无功。在 Chrome 中(仅在 chrome 中),当我在尝试访问选项卡时进行手动屏幕刷新时,它可以工作。但是当我在我的代码 [driver.navigate().refresh()] 中执行相同操作时,它不起作用!!
【问题讨论】:
-
您是否尝试过显式等待元素加载?
-
对不起!忘了在问题中提到这一点。现在添加。不,显式等待元素加载在这里也不起作用。
标签: selenium selenium-webdriver hover action mouseover