`
nth42nth
  • 浏览: 8753 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

selenium Beginners Guide (5)-- 用户扩展和插件 User Extensions and Add-ons

 
阅读更多

selenium Beginners Guide (5)-- 用户扩展和插件 User Extensions and Add-ons
2011年09月12日
  重要提醒:系统检测到您的帐号可能存在被盗风险,请尽快查看风险提示,并立即修改密码。  |  关闭
  网易博客安全提醒:系统检测到您当前密码的安全性较低,为了您的账号安全,建议您适时修改密码    立即修改  |  关闭
  User extensions 用户扩展,就是给用户提供一个自己写命令的方法。自己写的命令将会和selenium本身的命令一样,可以在IDE中使用,并且输入前几个字母后,IDE还能给出命令的提示。
  User extensions are stored in a separate file that we will tell Selenium IDE or Selenium RC to use. Inside there the new function will be written in JavaScript.
  Because Selenium's core is developed in JavaScript, creating an extension follows the standard rules for prototypal languages. To create an extension, we create a function in the following design pattern.
  为了使用我们自己的用户扩展,需要创建一个文件,例如名为:user-extention.js, 然后在该文件中编辑我们自己的命令函数,该文件中可以存放多个函数。写好后,在selenium中加载自己的扩展,重启IDE就可以使用了。
  例如我有以下的一个用户扩展文件:C:\user-extensions.js,其他有多个命令函数(doStoreRandom/ doDisplayAlert/doTypeTodaysDate)
  user-extensions.js 文件 
  //产生随机数
  Selenium.prototype.doStoreRandom = function(variableName){
  random = Math.floor(Math.random()*10000000);
  storedVars[variableName] = random;
  }
  //弹出框
  Selenium.prototype.doDisplayAlert = function(value, varName) {
  alert(value);
  }
  //在控件中输入当前日期
  Selenium.prototype.doTypeTodaysDate = function(locator){
  var dates = new Date();
  var day = dates.getDate();
  if (day
  这里需要注意的时,是在“Selenium Core extensions”中选择我们的文件。原书中说是在“Selenium IDE extensions”中选择,但我那么做之后重启总是提示"error loading Selenium IDE extensions: ReferenceError: Selenium is not defined" 错误信息。后来我整了半天网上找了好久也没找出原因,后来偶然间见到说可以选择core extensions试试,还真没问题了,而且应用正常。
  同时,我们也可以发现,如果在user-extensions文件中有什么错误,那么在IDE重启的时候会检测出来,并能给出错误行等信息。
  在IDE的command中输入我们自己写的命令
  
  正如前面所述,当我们写了命令的前面部分,IDE就能像其自身命令一下给出提示,并且还多了一个"命令AndWait"命令
  另外,注意我们在文件中写的是doStoreRandom,但实际上我们的命令是:storeRandom。 使用命令时去掉了do,只用后面的部分;还有命令的首字母变成了小写,尽管我们文件中写的是大写。
  
  //在控件中输入当前日期
  Selenium.prototype.doTypeTodaysDate = function(locator){
  var dates = new Date();
  var day = dates.getDate();
  if (day
  实例3:checkDate
  有关这个例子我还没看明白,按照书中操作得到错误:this.browserbot.getUserWindow().checkDate is not a function, fileName
  后面再看吧
  实例4:在以下的地址中,有些比较好的用户扩展代码,
  我在想,什么时候我有空了,把那些全部练习一遍,因为有些不是那么明显一操作就会的。
  有关Add-ons暂时不打算看了。
  有关User Extensions and Add-ons,我在想,是不是在利用RC的时候,这方面的作用体现的不是很明显呢。或者我在需要这些功能的时候,我可以利用我使用的语言本身的功能来解决,例如我想连接数据库,我可以使用java来连接;如我要使用随机数,我用java来产生;例如我要使用Datadriver,我也用java读取文件来实现。当然,User Extensions and Add-ons可能其好处,但我不十分清楚他的优势体现在什么地方。当然非编程操作时还是需要的。
  
  
  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics