通常 selenium 不识别浏览器工具栏上的元素。但这是针对预构建浏览器工具栏的。浏览器工具栏(适用于 FF、IE 和 Chrome)能否以这样一种方式开发,即可以使用 selenium 来识别工具栏上的元素,然后对其执行控制操作,例如单击工具栏上的单选按钮。
最佳答案
因为Selenium只能控制JavaScript可以控制的东西,所以你需要弄清楚JavaScript是否可以控制工具栏。 JavaScript 有 3 个主要特性。我控制 JavaScript 处理、DOM(文档对象模型)和 BOM(浏览器对象模型)。当 HTML 5 和 CS3 出现时,JavaScript 可能有更多的控制权,但这是我的了解。
我认为您可能需要使用跨浏览器扩展来制作侧边栏/工具栏。 google-gears/silverlight/adobe-air/jnext。您可能需要使用 DOM 制作 UI。我不知道。您需要进行研究……以前从未这样做过。
如果工具栏是 BOM(和/或 DOM)的一部分,那么您可以。只需创建一个名为 Selenium.prototype.doControlToolbar 之类的自定义命令,然后将您的 JavaScript 逻辑放入该函数中(类似于我下面的内容)。祝你好运!
选项 #1 - 如果使用 Selenium IDE:
在 Selenium IDE > 选项(菜单)> 选项(菜单选项)> 常规选项卡下指定 user-extensions.js 文件,然后在“Selenium 核心扩展”下浏览到您的文件。
选项 #2 - 如果使用 Selenium RC 服务器:
如果您不使用 IDE 并使用带有客户端驱动程序的 Selenium RC 服务器(例如 JUnit),则必须在启动 Selenium RC 服务器时使用 -userExtensions 参数指定 *.js 文件的路径在命令行上。但是你说你只是想使用 IDE,所以我会忽略它。使用 Selenium RC 服务器需要相当多的其他设置。
java -jar selenium-server.jar -userExtensions 用户扩展.js
=======================
我在我的自定义 user-extensions.js 文件中创建了以下自定义命令(JavaScript 函数)。我必须退出并重新启动 IDE 才能找到它。在 IDE 的“命令”字段中的“do”之后键入所有内容以查找自定义命令。看起来它还在 IDE 中添加了一个“customAlertAndWait”。
user-extensions.js 文件中的代码:
Selenium.prototype.doCustomAlert = function(sTarget, sValue) { alert('Target: ' + sTarget + ' ... Value: ' + sValue); };
Selenium IDE 命令详细信息:
命令:自定义警报
Target:自定义告警目标
值:自定义警报值
关于javascript - 是否有可能开发一个接受 Selenium 自动化的浏览器工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6098023/