我成功地将自定义命令添加到Selenium中,但在以一种格式(即Python格式的扩展版本)支持这些命令时遇到了困难。在导出到我的自定义格式时生成的脚本中,我得到了我添加的命令的如下内容:
# ERROR: Caught exception [unknown command [finalPrice]]
我将此命令添加到user-extensions.js中,如下所示:
Selenium.prototype.doFinalPrice = function (locator) { return ''; }
CommandBuilders.add('action', function (window) {
var result = {
command: 'finalPrice',
target: this.getRecorder(window).clickedElementLocators,
execute: function () { return; },
getDefinition: function () { return true; }
};
return result;
})并将标准Python WebDriver format.js扩展为以下内容:
WDAPI.Driver.prototype.finalPrice = function (locatorType, locator) {
return ["#PRICE", locatorType, locator].join('|');
};
SeleniumWebDriverAdaptor.prototype.finalPrice = function () {
var locator = this._elementLocator(this.rawArgs[0]);
var driver = new WDAPI.Driver();
return driver.finalPrice(locator.type, locator.string);
}有人成功地做到了吗?如果是的话,你能指出我哪里出错了吗?正如我已经说过的,Selenium中的命令本身工作正常,只有导出到我的自定义格式才会失败。任何帮助都将不胜感激。
发布于 2015-01-05 20:18:17
您应该能够使用用户扩展. be并行地开发javascript函数。这样,这些命令就会在webdriver和selenium-ide中为您提供。最干净的方法是在用户扩展s.js中创建它们一次,然后在webdriver中引用它们。
看看https://groups.google.com/d/msg/selenium-users/6Sfa1-bLKUQ/1fnoL4ZW3WoJ和https://bernardlago.wordpress.com/2011/03/02/user-extensions-with-selenium-rc-using-ruby-client-driver-selenium-client/,了解如何在用户扩展中弥合与定制javascript之间的差距。
什么是用户扩展?这些是用户可以创建和使用的JavaScript函数/库,以便扩展Selenium。 为什么我们要使用用户扩展呢?很简单。如果您想添加您自己的操作、断言和定位器-策略。这意味着,您希望完成的测试类型目前没有可用的命令。这也意味着Selenium中还没有方法可以执行您想要添加的操作/断言/定位器-策略。
https://stackoverflow.com/questions/25036852
复制相似问题