首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在格式化程序中支持自定义Selenium IDE命令

在格式化程序中支持自定义Selenium IDE命令
EN

Stack Overflow用户
提问于 2014-07-30 12:28:29
回答 1查看 1.1K关注 0票数 2

我成功地将自定义命令添加到Selenium中,但在以一种格式(即Python格式的扩展版本)支持这些命令时遇到了困难。在导出到我的自定义格式时生成的脚本中,我得到了我添加的命令的如下内容:

# ERROR: Caught exception [unknown command [finalPrice]]

我将此命令添加到user-extensions.js中,如下所示:

代码语言:javascript
复制
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扩展为以下内容:

代码语言:javascript
复制
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中的命令本身工作正常,只有导出到我的自定义格式才会失败。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-01-05 20:18:17

您应该能够使用用户扩展. be并行地开发javascript函数。这样,这些命令就会在webdriver和selenium-ide中为您提供。最干净的方法是在用户扩展s.js中创建它们一次,然后在webdriver中引用它们。

看看https://groups.google.com/d/msg/selenium-users/6Sfa1-bLKUQ/1fnoL4ZW3WoJhttps://bernardlago.wordpress.com/2011/03/02/user-extensions-with-selenium-rc-using-ruby-client-driver-selenium-client/,了解如何在用户扩展中弥合与定制javascript之间的差距。

什么是用户扩展?这些是用户可以创建和使用的JavaScript函数/库,以便扩展Selenium。 为什么我们要使用用户扩展呢?很简单。如果您想添加您自己的操作、断言和定位器-策略。这意味着,您希望完成的测试类型目前没有可用的命令。这也意味着Selenium中还没有方法可以执行您想要添加的操作/断言/定位器-策略。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25036852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档