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

如何从Hoover菜单打开WebElement Selenium JAVA

宋昊然
2023-03-14

你好,我是新的使用硒,我试图从网页上执行一些测试。

这是我的代码:

 System.setProperty("webdriver.gecko.driver","C:\\DRIVERS\\geckodriver.exe");
    WebDriver driver = new FirefoxDriver();
    //Open Portal Fiscal
    driver.get("http://150.23.110.111/Retenciones/");
    //Find what field and enter the user and password
    driver.findElement(By.id("frmLogin:txtUsr")).sendKeys("arrubio");
    driver.findElement(By.id("frmLogin:txtPwd")).sendKeys("gnp00gnp");
    driver.findElement(By.id("frmLogin:butLogin")).click();
    Actions action = new Actions(driver);
    WebElement we = driver.findElement(By.xpath(""));
    action.moveToElement(we).moveToElement(driver.findElement(By.xpath("")));

我可以毫无问题地进入页面,我可以输入登录的用户和密码,但下一页有一个胡佛菜单,我无法使用,并停止自动执行。

这是xpath和csspath:

xpath:/html/body/div[3]/div/div/form/div/ul/li[1]/ul/li[1]/a/span

csspath: html body div#content div#leftPanel.ui-layout-unit.ui-widget.ui-widget-content.ui-corner-all.ui-layout-west.blankBckdiv.ui-layout-unit-content.ui-小部件-内容形式#j_id1833690111_27e067e8.blankBck div#j_id1833690111_27e067e8:j_id1833690111_27e0678e.ui-menu.ui-menubar.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfixul.ui-menu-list.ui-helper-重置li.ui-widget.ui-menuitem.ui-corner-all.ui-menu-parent.ui-menuitem-activeul.ui-widget-content.ui-menu-list.ui-corner-all.ui-helper-clearfix.ui-menu-child.ui-影子li.ui-menuitem.ui-widget.ui-角-所有a.ui-menuitem-link.ui-角-所有span.ui-menuitem-text

这是检查“Búsqueda”按钮时出现的元素。

<ul class="ui-widget-content ui-menu-list ui-corner-all ui-helper-clearfix ui-menu-child ui-shadow" role="menu" style="display: block; height: auto; z-index: 1013; left: 0px; top: 28px;">
<li class="ui-menuitem ui-widget ui-corner-all" role="menuitem">
<a class="ui-menuitem-link ui-corner-all" href="/Retenciones/main/faces/m_evaPuntual.xhtml" style="width:120px" tabindex="-1">
<span class="ui-menuitem-text">Búsqueda</span>
</a>
</li>
<li class="ui-menuitem ui-widget ui-corner-all" role="menuitem">
</ul>

如何从胡佛菜单中选择并打开“Búsqueda”按钮?

感谢您的关注:)

共有2个答案

宦文柏
2023-03-14

使用操作类尝试下面的代码

WebElement menu_element = driver.findElement(By.xpath("your_menu_xpath"));

WebDriverWait wait = new WebDriverWait(driver, 10);   //Explicit wait method, wait for web-element till 10 seconds so, your driver should able to find the web-element.
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("Your_submemu_xpath"))));

WebElement sub_menu_element = driver.findElement(By.xpath("Your_submemu_xpath"));
Actions action = new Actions(driver);
action.moveToElement(menu_element).moveToElement(sub_menu_element).click().build().perform();

说明:

1)首先定位菜单元素

2) 提供显式等待方法几秒钟,以便驾驶员能够找到您想要的子菜单元素

3)在显式等待之后,找到您要使用的sub_menu元素

4) 使用动作类尝试将元素从菜单移动到子菜单

孔琪
2023-03-14

尝试使用:

Actions action = new Actions(driver);
WebElement menu = driver.findElement(By.xpath("xpath for menu"));
WebElement item = driver.findElement(by.cssSelector("css selector values for Búsqueda"));
action.moveToElement(menu).moveToElement(item ).click().build().perform();
 类似资料:
  • 我的electron应用程序中有一个按钮,上面写着“打开文件”,当你点击它时,打开文件对话框就会出现,我可以选择一个文件。 但是,当我从应用程序工具栏中单击菜单项时,如何打开“打开文件对话框”? 这是工具栏菜单子菜单中的我的标签: 我想做这样的事情: 但没有“开放”这样的角色。 如何实现打开打开文件对话框的单击事件? Main.js打开文件部分: index.js:

  • 我想知道当菜单按钮的菜单当前打开时,是否可以为菜单按钮设置特定样式(例如,背景色为黑色)。也就是说,如果菜单未打开,则其背景色不应为黑色。我可以在CSS文件中这样做吗?或者甚至可以这样做吗? 我知道菜单按钮有一个显示的方法,它指示我,菜单是否打开,但我不知道应用这个,以便在菜单打开时按钮颜色会发生变化。 这是菜单按钮:https://docs.oracle.com/javase/8/javafx/

  • 我已经看到了一些边界案例和奇怪的开发人员界面。 从“摇一摇你的设备”,这确实不切实际,特别是用平板电脑 在Android studio周围工作来模拟按钮按下。

  • 我想我的问题以前已经回答过很多次了,但是我找不到确切的我的案例。 我有一个垂直菜单和子菜单,我想显示子菜单,只有当父菜单被点击(不是悬停),一次只显示一个子菜单,在点击菜单的某个地方后,我想要子菜单消失。 这就是我现在得到的--它基于现在的悬停。我试着把a:hover改成类似a:active的东西,但它并不能很好地工作(我在CSS方面不是很好)。 有谁知道吗?

  • 我还是编程的初学者,我想在打开菜单的dropdowm时创建一个漂亮的过渡效果。 按照现在的方式,菜单立即出现,没有任何形式的过渡。在没有下拉菜单的菜单中,我设法创建了一个过渡效果。但我不知道如何为下拉列表创建这种过渡效果。 你能告诉我当我打开下拉菜单时如何创建一个过渡效果吗? 我将代码放入CodeSandBox.io中 null null 事先谢谢你的帮助。

  • 我的视野里有两个导航抽屉。当右边的抽屉打开时,我想锁左边的抽屉,当左边的抽屉打开时,我想锁右边的抽屉。 就目前情况而言,当(例如)左侧抽屉打开时,您从右侧滑动以将其关闭,则在左侧抽屉完全关闭之前,右侧抽屉开始打开。这是不可取的行为。 这是我尝试过的,但当我滑动抽屉时,我得到一个。