Selenium2 中的 FirefoxDriver 是否有经过验证的 mouseOver 解决方法?

2024-07-04

我在用着硒Java 2.0b3。我有这个代码:

...
WebDriver driver = new InternetExplorerDriver();
Selenium seleniumDriver = new WebDriverBackedSelenium(driver, "http://localhost:8088/Sistema/");
...
...
RenderedWebElement menuRegistrar = (RenderedWebElement)driver.findElement(By.xpath("//a[normalize-space()='Registrar']"));
seleniumDriver.mouseOver("//a[normalize-space()='Registrar']"); //makes element visible     
menuRegistrar.click();
seleniumDriver.mouseOut("//a[normalize-space()='Registrar']");
...

与 InternetExplorerDriver 一起工作就像一个魅力(与IE 8),但它不适用于 FirefoxDriver(使用火狐4)。我已经用代码尝试了很多东西,但没有任何效果。和我must使用 FirefoxDriver 因为我正在测试的应用程序在 IE 上表现不佳。

正如您可能猜到的,“Registrar”链接是隐藏的,直到 mouseOver 事件触发为止。

有任何经过验证的解决方法吗?谢谢你的时间...

EDIT: 还尝试了 ChromeDriver 与 Chrome 11。也不起作用。如果有适用于 Chrome 的解决方法,我会接受!


答案(使用 Selenium Java 2.0RC1、Windows 7、Firefox 4 的工作代码):感谢 Andy Tinkham 和 Luke Inman-Semerau:

//get the element that shows menu with the mouseOver event
WebElement menu = driver.findElement(By.xpath("//div[@id='nav']/li[3]"));

//the element that I want to click (hidden)
WebElement menuOption = driver.findElement(By.xpath("//a[normalize-space()='Registrar']"));

//build and perform the mouseOver with Advanced User Interactions API
Actions builder = new Actions(driver);    
builder.moveToElement(menu).build().perform();

//then click when menu option is visible
menuOption.click();

NOTE:高级用户交互 API 在浏览器上使用 NativeEvents(不支持跨平台)。因此,如果您更改操作系统,此代码可能不会像那样工作。这就是我添加操作系统和浏览器详细信息的原因。看硒用户组中的问题 http://groups.google.com/group/selenium-users/browse_thread/thread/7096b023ffc631fc


我建议尝试高级用户操作 API http://code.google.com/p/selenium/wiki/AdvancedUserInteractions这是昨天在 2.0rc1 版本中添加的,因为看起来您仍在使用 Selenium 1 API(通过 WebDriverBackedSelenium),并且我不确定提供了多少 Firefox 4 支持。我没有使用 Java 进行 Selenium 测试,但在我看来,您想要做的是这样的:

   Actions builder = new Actions(driver); // Or maybe seleniumDriver? Not sure which one to use

   Actions hoverOverRegistrar = builder.moveToElement(menuRegistrar);

   hoverOverRegistrar.perform();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium2 中的 FirefoxDriver 是否有经过验证的 mouseOver 解决方法? 的相关文章

  • 如何检查所有 Maven 依赖项是否都是针对 Java 6 编译的

    我正在寻找一个 Maven 插件 或其他 Maven 方式 来强制 Maven 项目的所有依赖项都编译为正确的 java 主要版本类文件格式 背景 我正在将现有项目从 Java 7 降级到 Java 6 并且我需要检查库是否是针对 Java
  • Java Appengine APPSTATS 导致 java 内存不足错误

    我的 java appengine 应用程序中有几个 servlet 它们在内存中进行排序 并需要几秒钟的时间才能完成 这些完全没有错误 但是 我最近为 appengine 启用了 appstats 并开始收到以下错误 java lang
  • Java中的相似字符串比较

    我想相互比较几个字符串 并找到最相似的字符串 我想知道是否有任何库 方法或最佳实践可以返回哪些字符串与其他字符串更相似 例如 狐狸跳得很快 gt 狐狸跳了 敏捷的狐狸跳了 gt 狐狸 该比较将返回第一个比第二个更相似 我想我需要一些方法 例
  • 如何在运行时创建对象?

    我需要在运行时创建一个类的多个不同对象 这个数字也是在运行时确定的 就像我们在运行时得到 int no o objects 10 一样 然后我需要实例化一个类10次 Thanks 阅读Java 教程中的数组 http java sun co
  • 为什么 Stream 没有 toList() 方法?

    使用 Java 8 流时 获取一个列表 从中创建一个流 执行业务并将其转换回来是很常见的 就像是 Stream of 2 1 2 5 filter n gt n gt 0 map n gt n n collect Collectors to
  • Google Play 游戏服务 - 自定义通知/欢迎回来

    我一直在互联网上查找 但找不到我的答案 有没有办法向用户显示他们已登录 GPGS 第一次登录时 您会收到一条通知 内容为 欢迎 但是当您下次打开应用程序时 什么也没有显示 有没有办法显示欢迎回来通知 对于 iOS 这是可能的 在第 9 步上
  • Spring Boot,JPA 错误:“通过 JDBC 语句执行 DDL 时出错”

    我正在尝试使用一个非常基本的 到目前为止 Spring Boot 应用程序在我的 MySQL 数据库中添加一个条目 我使用了在网上找到的一些零碎内容 这是我试图遵循的代码 netgloo spring boot samples spring
  • 寻找关于 JIDE 的反馈 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ClassLoader.getResourceAsStream 如何工作?

    我用 maven 创建了一个 jar 文件 当我打开这个罐子时 我可以找到以下内容 my jar text1 txt folder some other stuff 当我在 Eclipse 中运行此代码片段时 打印出 text1 txt 的
  • 如何知道机器的堆栈在内存中是向上还是向下增长? (JAVA)

    我有一个 C 程序来检查机器堆栈在内存中是向上还是向下增长 事情是这样的 include
  • 如何在 IE 受信任的根证书颁发机构存储中自动安装自签名证书

    我创建了一个自签名证书 但浏览器告诉我 此 CA 根证书不受信任 要启用信任 请在受信任的根证书颁发机构存储中安装此证书 我通过进入 IE gt Internet 选项 gt 内容 gt 证书 gt 等 我实际上必须导出自签名证书 然后将其
  • 终极Java版本表(J2EE、Java EE、Servlet、JSP、JSTL)

    我正在寻找 Java EE 或以前称为 J2EE 和 Java SE 的组件分解 E g J2EE 1 3 Servlet 2 3 JSP 1 2 JSTL 1 0 J2EE 1 4 Servlet 2 4 JSP 2 0 JSTL 1 1
  • 优化xstream的加载速度

    当我尝试从 XML 文件执行加载时 我感觉 xstream 加载速度达不到我的要求 为了 一个有 10k 条目的 数据库 需要几分钟 以下是我用来序列化的整个数据结构 列表的大小 符号和代码 将为 大约 10k 条目 有什么方法我可以尝试
  • 使用 v8::Locker 的正确方法是什么?为什么必须使用它?

    我正在尝试使用 NDK 将 v8 嵌入到 Android 应用程序中 我有一个看起来像这样的 JNI 模块 未显示 JNI 映射代码 include
  • 使用 Apache CXF 2.4 JAX-RS 和 Spring Security 3.2 获取用户名

    我在 JAX RS 资源中获取用户名SecurityContextHolder这有效 Path myresource public class MyResoure Get public String getUserName return S
  • 让 Feign 客户端从自定义属性中获取信任库

    我们应用程序中的 Feign 客户端正在与自签名服务器进行通信 我们能够使用该属性让 Feign 客户端使用自定义信任库javax net ssl trustStore系统属性 但由于我的应用程序还与标准 CA 认证站点进行通信 因此不应覆
  • 如何限制匿名子类的创建(Java)

    抱歉 我之前没有正确表述这个问题 我尝试实现工厂模式 一个更好的例子 它是一个带有 create 函数的抽象类 Human 根据创建时传递的参数 它决定是返回其子类 Man 的实例还是返回 Woman 子类的实例 因此 您可以使用以下命令调
  • MySQL 连接器错误“服务器时区值中欧时间”[重复]

    这个问题在这里已经有答案了 我的问题 MySQL 连接器 服务器时区值中欧时间 无法识别或代表多个时区 该项目 小型网络项目 JavaEE Tomcat 8 5 MySQL Maven 我的尝试 Maven gt 将 MySQL 连接器从
  • 如何在 eclipse 中安装最新版本的 Xuggler(5.4,截至 18/05/2013)?

    我真的不知道从哪里开始这样做 我已经从网站下载了必要的 Jar 并对如何在 Eclipse 中安装 Xuggler 进行了一些研究 但所有内容都已过时或不相关 我的系统是 64 位 Windows 8 大多数在 Vista 和 Window
  • java中的长轮询

    我已经编写了用于长轮询的服务器端代码 我想用java写客户端程序 因此 根据长轮询 客户端发送一个由服务器帮助的请求 当事件发生时服务器响应该请求 然后客户端发送新的请求 所以我面临的麻烦是用java编写的客户端 发送请求后 如何继续检查客

随机推荐

  • 防止 ItemContainerStyle 覆盖已设置的 Style

    有没有办法防止 ItemContainerStyle 覆盖已经设置的样式 通过
  • FFmpeg API 书籍、教程等[重复]

    这个问题在这里已经有答案了 可能的重复 ffmpeg C API 文档 教程 https stackoverflow com questions 2641460 ffmpeg c api documentation tutorial 你好
  • 从Excel单元格调用Excel工作表函数

    我有一组用户定义的 vba 函数 位于 Excel 模块中 然后从 Excel 电子表格中调用这些函数 此时一切都工作正常 我被要求将 vba 从模块移动到工作表的代码页 当我这样做时 我发现我无法从工作表上的单元格调用任何函数 名称根本不
  • 轨道更短“time_ago_in_words”

    除了 time ago in words 之外 rails 中还有不同的时间计算吗 我希望能够仅使用 h 表示小时 d 天 m 表示几个月 例如 3d 或4h 或5m 我的代码现在 ago 组成该字符串的组件可以本地化 并且位于 datet
  • 从 Visual Studio 文本修饰扩展获取当前文件名

    我是 VS 扩展开发的新手 我目前正在 VS 2015 中使用文本装饰示例 并且已经能够正确显示彩色框 现在我想扩展示例 以便装饰仅出现在某些文件名上 谷歌搜索说我可以使用ITextDocumentFactoryService TryGet
  • Y'UV420p(和 Y'V12 或 YV12)到 RGB888 转换

    我正在尝试在 android 中显示 yuv 视频文件 我有一些正在使用的 yuv 视频文件 该视频yuv文件video1 https www dropbox com s wjofvdf9k9bglhx rawData1 yuv dl 0
  • 用于维护任务的 Windows 服务或任务计划程序?

    我有一个执行一些维护任务的 C 应用程序 它大约需要每小时运行一次 尽管如果有点偏离也不太重要 而且它必须运行在一台没有人登录的Win2003服务器上 基本上我想知道我是否应该编写一个Windows服务 如果是的话 Thread Sleep
  • Chrome 开发者工具:缺少“脚本”选项卡

    Web 浏览器 chrome 版本 21 0 1180 82 和版本 23 0 1244 0 canary 操作系统 mac osx 10 8 它应该是什么样子 在我看来 选项卡导航器中的 脚本 选项卡被 源 图标替换 这给我带来了问题 因
  • 如何更改导航栏上 BarButtonItem 的文本?

    我正在尝试创建一个可以编辑的项目列表 像这样的东西 为此 我在视图顶部添加了一个导航栏 然后在 XCode 设计器中添加了 2 个栏按钮项 我将左侧按钮的标识符设置为 添加 将右侧按钮的标识符设置为 编辑 当我单击 编辑 时 我想将文本更改
  • QuickSort Dijkstra 3 路分区:为什么需要额外的交换?

    给定这里的算法 看看 i 位于 X 的场景 会发生以下情况 设想 我 gt X X gt P 1 swap X Z gt the value at i is now Z which is still gt P 2 swap Z Y gt t
  • WPF 应用程序中 WebBrowser 控件的叠加?

    可以给我一个提示 如何在我的 WPF 应用程序的 WebBrowser 控件中显示 覆盖控件 我想将导航图形显示为叠加层 以便用户可以选择一个功能 并且导航控件在选择它后消失 目前对 WPF 还没有真正的经验 我不知道从哪里开始 任何提示或
  • JavaScript 阻止表单提交

    当我按下 JavaScript 对话框上的取消按钮时 我试图让我的表单不提交 我有这个代码 document ready function submit click function e e preventDefault var link
  • Linux - 在 CLI 中更改主机名

    我不知道如何搜索这个 这就是我要求它的原因 我所有的搜索都没有透露任何相关信息 我有一个 Fedora 18 服务器 如下所示 root dhcp 192 168 5 100 我想将其更改为 root server1 目前 这台机器设置为通
  • 在 Maven BOM(物料清单)中定义依赖范围是一个好习惯吗?

    我有一个pom xml像这样用作 BOM 物料清单 定义的依赖项之一是 test用于测试使用此 BOM 中的库的代码的工件 问题是 指定 test神器只是为了testBOM 本身的范围 还是应该将其留给 BOM 用户在其项目的 POM 中指
  • 如何刷新 WatchApp 复杂功能

    所以我正在尝试更新headerTextProvider 每一秒都有一个Timer scheduledTimer withTimeInterval 1 repeats true timer in 我想这不是正确的做法吗 MY STUFF HE
  • keycloak 中基于短信的 OTP 可能吗?

    我正在探索 keycloak 我想构建一个基于用户手机号码的应用程序 SMS OTP 应该向用户进行身份验证 我没有找到任何地方 可以通过扩展身份验证机制 检查身份验证 SPI 文档 https www keycloak org docs
  • 使用 Scipy 将字典从 Python 保存到 Matlab

    我发现将整齐生成的数据保存到 mat 文件中时遇到一些问题 我认为使用 Scipy 更简单 但似乎我弄错了 这是我要保存的数据的示例 out features array 5 00088905e 01 1 51847522e 01 4 93
  • 即使为 pandas 指定编码,编码也是错误的

    我有一个包含重音字符的 CSV 文件 我用PyCharm和Sublime打开时检查了编码 它是西方的 Windows 1252或ISO 8859 1 我从此 CSV 创建一个 pandas 数据框 然后修改它 并将其导出到 UTF 8 文本
  • 扩展 Ember RESTAdapter 以与 CouchDB 配合使用

    我基本上使用 CouchDB 来处理我的整个后端 使用 Ember 来处理基本上我的整个前端 并且我需要找到一种方法来使 json 数据在两者之间兼容 特别是关于 命名根 约定 这里是这ember json 期望 http emberjs
  • Selenium2 中的 FirefoxDriver 是否有经过验证的 mouseOver 解决方法?

    我在用着硒Java 2 0b3 我有这个代码 WebDriver driver new InternetExplorerDriver Selenium seleniumDriver new WebDriverBackedSelenium d