【问题标题】:Selenium (Java): hover over a button and click on either of the optionsSelenium (Java):将鼠标悬停在按钮上并单击任一选项
【发布时间】:2014-03-26 02:32:08
【问题描述】:

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

我有一个操作按钮,当用户将鼠标悬停在操作按钮上时,它会提供两个可点击选项 - 创建和编辑

我已将 CSS 定位器存储为操作按钮的枚举,并将创建和编辑(可点击)链接分别存储为 ACTIONBUTTON、CREATEACTION、EDITACTION。

我使用了如下的 Java 代码,但它给出了一个错误提示 java.lang.ClassCastException: org.openqa.selenium.By$ByCssSelector cannot be cast to 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();

【问题讨论】:

    标签: java css selenium mousehover


    【解决方案1】:

    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();
    

    【讨论】:

    • 谢谢,但它对我不起作用:-(我什至尝试编写以下样式(不使用枚举)但仍然没有运气.. 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();
    • 抱歉,我的回答含糊不清。我认为我无法识别确切的 CSS/XPATH 定位器和/或子菜单项对 Selenium 不可见。但正如你所说,这是一个不同的问题。再次感谢:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多