【问题标题】:JavaScript Drop&Down menu selenium Java without value or id [closed]JavaScript Drop&Down 菜单 selenium Java 没有值或 id [关闭]
【发布时间】:2017-12-01 13:11:06
【问题描述】:

我在单击下拉菜单和在 Selenium 中选择一个选项时遇到问题。 我尝试使用.click() 方法,但没有成功。

我是 selenium 的新手,正在寻找解决方案,但我没有找到任何合适的方法。

我将按钮和菜单中的代码粘贴到 JavaScript 中,并为该过程粘贴两个屏幕截图

按钮

<div id="wfm-header-config" class="header-cell jqx-widget jqx-widget-officeWFM2 jqx-menu jqx-menu-officeWFM2 jqx-rtl jqx-rtl-officeWFM2 jqx-widget-header jqx-widget-header-officeWFM2 jqx-menu-horizontal jqx-menu-horizontal-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2 dis_jqxMenu" role="menubar" style="outline: medium none; height: auto; background-color: transparent; background-image: none; border: medium none;" tabindex="0">
<ul class="jqx-menu-ul">
<li id="-1" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item-top jqx-menu-item-top-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" style="float: right; background-color: transparent; background-image: none; padding: 2px;" role="menuitem">
<img src="resources/images/ic_settings_24.png" title="Configuración ">
</li>
</ul>
</div>

下拉菜单

<div class="jqx-menu-popup jqx-menu-popup jqx-menu-popup-officeWFM2" style="border: medium none; background-color: transparent; z-index: 17000; padding: 0px; margin: 0px; position: absolute; top: 39.3333px; left: 1086.5px; display: none; visibility: visible; width: 159px; height: 124px;">
<div style="background-color: transparent; border: none; position:absolute; overflow:hidden; left: 0; top: 0; right: 0; width: 100%; height: 100%;">
<ul id="jqxWidget60bb7a98" class="jqx-widget-content jqx-widget-content-officeWFM2 jqx-menu-dropdown jqx-menu-dropdown-officeWFM2 jqx-popup jqx-popup-officeWFM2 jqx-rc-l jqx-rc-l-officeWFM2 jqx-rc-b jqx-rc-b-officeWFM2" role="menu" style="overflow: hidden; position: absolute; left: 0px; display: block; top: -119px; margin-left: 0px; margin-right: 0px; padding-left: 2px; padding-right: 2px;">
<li id="0" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item jqx-menu-item-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" role="menuitem">
<span style="position: relative; left: 3px; top: -2px;">Perfiles</span>
</li>
<li id="1" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item jqx-menu-item-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" role="menuitem">
<span style="position: relative; left: 3px; top: -2px;">Usuarios</span>
</li>
<li id="2" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item jqx-menu-item-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" role="menuitem">
<span style="position: relative; left: 3px; top: -2px;">Parámetros</span>
</li>
<li id="3" class="jqx-rtl jqx-rtl-officeWFM2 jqx-item jqx-item-officeWFM2 jqx-menu-item jqx-menu-item-officeWFM2 jqx-rc-all jqx-rc-all-officeWFM2" role="menuitem">
<span style="position: relative; left: 3px; top: -2px;">Datos entidades</span>
</li>
</ul>
</div>
</div>

我需要 Selenium Webdriver 中的代码来选择,例如“Usuarios”选项

主窗口和点击按钮“配置”

【问题讨论】:

  • 您需要单击“设置”按钮才能看到下拉菜单,还是只需将鼠标悬停在上面?也许是你的问题。
  • @Pablo Cabanillas,您的菜单是在单击设置图标时打开还是只是将鼠标悬停在那里?
  • 嗨@Cosmin 我需要使用 selenium 点击名为“Configuración”的图标来选择一个选项。在后台执行或不执行相同操作非常感谢
  • 请不要破坏您的帖子。通过在 Stack Exchange 网络上发布,您已授予 SE 分发该内容的不可撤销的权利(在 CC BY-SA 3.0 license 下)。根据 SE 政策,任何破坏行为都将被撤销。如果您想取消此帖子与您的帐户的关联,请参阅What is the proper route for a disassociation request?
  • @kayess 回滚

标签: javascript java html selenium selenium-webdriver


【解决方案1】:

如果您通过悬停配置图像来查看子菜单,请使用Actions 类执行悬停操作并按以下方式单击菜单:

WebElement configMenu = driver.findElement(By.xpath("//ul/li[@role='menuitem']/img[contains(@title,'Config')]"));
WebElement  UsuariosSubmenu = driver.findElement(By.xpath("//ul/li/span[normalize-space()='Usuarios']"));

Actions action = new Actions(driver);
action.moveToElement(configMenu).clickAndHold(UsuariosSubmenu).click().build().perform(); 

【讨论】:

  • 嗨@Tuks 如果我使用您的代码,右侧是WebElement,左侧是字符串。我有一个错误。你有什么解决办法吗?谢谢
  • 对不起@Pablo Cabanillas,我的错误是左侧的 webElement。我已经更新了代码
  • 你好@Tucks。我已经更改了 WebElement 的字符串但不起作用问题出在最后一行 action.moveToElement... 控制台中的错误是线程“main”中的异常 org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: (119.9749984741211, -73.64999389648438) 超出视口宽度 (1366) 和高度 (659) 的范围非常抱歉所有问题,但这是我第一次使用 Selenium 和编程语言
  • 我认为这是一个已经在这里报告的问题 github.com/seleniumhq/selenium-google-code-issue-archive/issues/… 。更新您的浏览器和硒罐。同样的事情在这里工作。 m 使用 Selenium 3.0.4 和 FF 52
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
  • 2011-02-17
  • 2022-12-02
  • 2020-07-05
  • 2017-01-01
  • 2016-04-05
相关资源
最近更新 更多