当前位置: 首页 > 知识库问答 >
问题:

硒(Java):将鼠标悬停在按钮上,然后单击任一选项

燕扬
2023-03-14

我使用Selenium使用Java语言自动化UI。

我有一个动作按钮,当用户将鼠标悬停在动作按钮上时,它会给出两个可点击的选项——创建和编辑

我已经将CSS定位符存储为动作按钮的枚举,以及创建和编辑(可点击的)链接的枚举,分别为Action button、CREATEACTION、EDITACTION。

我使用了如下Java代码,但它给出了一个错误java.lang.ClassCastException:org.openqa.selenium.By$ByCssSelector不能被强制转换为org.openqa.selenium.WebElement

Actions actions = new Actions(driver);
actions.moveToElement((WebElement) DCSAdminEnums.ACTIONBUTTON.getLocator());

actions.moveToElement((WebElement) DCSAdminEnums.CREATEACTION.getLocator());
actions.click();
actions.perform();

请建议你可以帮助一个更好的方法来处理这个问题,使用我所拥有的枚举。

更新:我也尝试了以下风格的代码,但它不起作用:-(

WebElement menu = driver.findElement((By.xpath("//*[@id='button-1177-btnInnerEl']")));
WebElement submenu = driver.findElement((By.cssSelector("a[id='menuitem-1175-itemEl']")));
Actions action = new Actions(driver);
action.moveToElement(menu).perform();
Thread.sleep(2000);
action.click(submenu).perform();

共有1个答案

易祯
2023-03-14

ByWebElement是不同的类型,因此编译错误。

如果你说的是没有执行的行动,那么这与你最初的帖子完全不同。请提出一个新问题。

WebbElement可以通过driver.findElement(By locator)检索,因此需要先使用driver.findElement(yourLocator)获取元素。

Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(DCSAdminEnums.ACTIONBUTTON.getLocator()));
actions.moveToElement(driver.findElement(DCSAdminEnums.CREATEACTION.getLocator()));
actions.click().perform();
 类似资料:
  • 我正在尝试将鼠标悬停在动画菜单上并在菜单中选择一个项目。我尝试先通过xpath在菜单上执行悬停,然后通过xpath执行单击菜单项,如下所示。 我有个例外 org.openqa.selenium.interactions。MoveTargetOutOfBoundsException:元素内的偏移量无法滚动到视图中 我还尝试将这些行为链接如下: 这也会引发相同的异常。 有什么想法来实现动画菜单项的点击

  • 在一个网页上,我有一个评分星反馈,当我悬停在星星上时,它们变成了黄色。我有5/6类似的div,相同的类和配置。如果我吸气并单击第4颗星,它们都变成了黄色。我想做的是瞄准第4颗星并单击它来设置评级。我尝试了动作链 动作动作=新动作(驱动);WebElement review_stars=驱动程序。findElement(通过.xpath(“///[name()='svg'和contains(@cla

  • 我正在尝试单击一个按钮来启动文件下载。根据我所看到的,该按钮具有悬停功能。我尝试通过所有单击。 页面的HTML块, 悬停前按钮的类是, 悬停时按钮的类是, 通过开发人员窗口选择按钮,并通过路径从 我得到了如下结果, CSS路径, XPath, 我试过的代码, 而且,

  • 我正在尝试单击“编辑”按钮上的悬停。然而,当我使用MouseOverElement时,我总是得到“Element当前不可见,因此可能不会与之交互”的错误。 对如何使其工作有什么想法吗?感谢   标题                       编辑       内容         下面是我的代码: 方法1: WebElement textArea=driver.findElement(by.cs

  • 这不是一个重复的问题——我不想简单地更改CSS中的字体颜色。 我的问题是: 我有颜色的产品。蓝色、红色、绿色、黄色、紫色——任何颜色。 我有一个同样颜色的盒子- 在这个盒子里我有一个按钮“买” 我可以创建这个按钮动态-与框的颜色相同。 如果框为蓝色,则按钮为蓝色,带有白色边框和白色字体颜色。 如果框为红色-按钮为红色,带有白色边框和白色字体颜色。 CSS(反转按钮): 但在盘旋中 按钮变为白色,字

  • 问题内容: 我有一张图片: 然后,我将其显示在屏幕上: 如何检测鼠标是否在触摸图像? 问题答案: 使用获得描述你的边界,然后使用来检查,如果鼠标光标这里面。 例: