在ubuntu下通过Virtualbox虚拟机安装WindowsXP

2010年8月4日 没有评论

通过近两个星期的折腾,终于成功地在ubuntu下通过Virturebox虚拟机安装WindowsXP。

安装Virtualbox很顺利,没有遇到问题,关键的是ubuntu 10.04不认光驱,无法通过Windows安装盘在虚拟机上安装Windows。

后来通过在其它计算机上拷贝光盘到移动硬盘,然后拷贝到ubuntu的笔记本上,利用mkisofs命令,将目录制作成iso文件,但虚拟机提示无启动文件。

今天在网上下载了WindowsXP的iso文件,成功地安装上了WindowsXP。

分类: ubuntu 标签: ,

升级到ubuntu10.04之后光驱消失

2010年8月3日 没有评论

将ubuntu升级到10.04之后,感觉系统运行快了很多,不过发现光驱消失了(有时候光驱会出现)。

网上搜寻,发现这是系统的一个bug,许多人都遇到了这个问题,还解决不了。

分类: ubuntu 标签: ,

ruby内嵌表达式

2010年7月7日 没有评论

可以用#{}内嵌表达式,如:

  1. ruby> var“ abc ”
  2. “ abc ”
  3. ruby> “1234#{var}5678″
  4. “1234 abc 5678″
分类: ruby 标签:

在Watir中利用AutoIt关闭弹窗

2010年1月14日 leleba 12 条评论

今天是一个高兴的日子,我终于成功地利用AutoIt关闭IE弹窗了。

利用Watir进行网页测试已经有2年多了,但始终在处理IE弹窗上卡壳,网上有不少介绍和例子可供借鉴,但以前均未能测试成功。

先将代码列出:

require ‘watir’
require ‘win32ole’
require ‘watir/windowhelper’

………

………

ie33.link(:id, “something”).click_no_wait
sleep 3 #时间长短可能影响能否关闭弹窗

#sleep 2
puts “before autoit”
autoit = WIN32OLE.new(‘AutoItX3.Control’)
puts “before loop do”
    loop do
      puts “in loop”
      #ret = autoit.WinWaitActive(“Windows Internet Explorer”, “”,9)
      #ret = autoit.WinWaitActive(“来自网页的信息”, “”,9)
      ret = autoit.WinWaitActive(“Microsoft Internet Explorer”, “”,9)

      puts “after ret”
      puts(ret) 

      if (ret==1)
      autoit.Send(“{Enter}”)
      exit
      end
      sleep 3
    end

以前不成功的原因,主要是测试用电脑的环境不一样,今天尝试以上代码时,刚开始也不成功,ret始终等于0,偶然用鼠标碰了一下IE窗口,ret变为1。这才发现ie33.link(:id, “something”).click_no_wait语句之后的sleep时间长短很关键,不同的电脑以及网络速度不同,sleep时间不匹配的话,以上代码不能正常运行。

比较疑惑的是,以下代码不行:

require ‘watir’
require ‘win32ole’
require ‘watir/windowhelper’

………

………

Thread.new{

puts “before autoit”
autoit = WIN32OLE.new(‘AutoItX3.Control’)
puts “before loop do”
    loop do
      puts “in loop”
      #ret = autoit.WinWaitActive(“Windows Internet Explorer”, “”,9)
      #ret = autoit.WinWaitActive(“来自网页的信息”, “”,9)
      ret = autoit.WinWaitActive(“Microsoft Internet Explorer”, “”,9)

      puts “after ret”
      puts(ret) 

      if (ret==1)
      autoit.Send(“{Enter}”)
      exit
      end
      sleep 3
    end

}

ie33.link(:id, “something”).click_no_wait

在将ie33.link(:id, “something”).click_no_wait修改为ie33.link(:id, “something”).click之后,以上代码运行成功。

第一次往往是最难的,以后通过watir + nobogiri +mechanize + autoit, 基本上可以解决大部分网页测试的问题了。

我自己的原创: http://www.sdgz.cn

分类: watir 标签: , ,

watir中获得IE进程号的语句

2010年1月13日 leleba 没有评论

watir中获得IE进程号的语句:

ie33 = Watir::IE.start(“http://www.google.com“)

pid_number = Watir::IE::Process.process_id_from_hwnd(ie33.hwnd)

本文原创于: http://www.sdgz.cn

分类: watir 标签:

TOP5外包网站

2010年1月7日 leleba 没有评论

watir中统计网页中链接数量的语句

2010年1月7日 leleba 1 条评论

有时候需要统计网页中或者网页某个区域中的链接数量,刚开始我尝试以下语句,但不成功:
ie.links(:id, /bra bra/).length

后来发现以下语句可行:
ie.div(:id, “searchList”).links

之后发现如下更好的语句:

links_searchlist = ie101.links.find_all { |link| link.class_name == ‘permalink’ }
puts “the links in the searchlist:”
puts links_searchlist.length


searchlistlinks = ie102.links.find_all { |link| link.id =~ /hitURL/ }
links_searchlist = searchlistlinks.length
puts links_searchlist

searchlistlinks = ie33.links.find_all { |link| link.href =~ /something/ }
类似的语句不行:searchlistlinks = ie33.links.find_all { |link| link.url =~ /something/ }

最近发现,如果链接数量比较多,以上语句耗时太长,通过google和百度,找到了更高效的语句:

links = ie51.div(:id, ‘threadlist’).html.scan(/something/).count
puts links

分类: watir 标签:

firewatir 1.6.5不支持中文字符

2010年1月7日 leleba 1 条评论

想了很多办法,包括更改.rb文件和firefox浏览器的编码,都不能用firewatir 1.6.5往网页上输入中文字符,测试的代码如下:

require ‘rubygems’
require ‘firewatir’

ff = FireWatir::Firefox.new
ff.goto “http://www.google.com

sleep 1
ff.text_field(:name, ‘q’).set(‘电’)

我还利用了以下语句,同样没有效果:

g_word = ‘电’
puts g_word
g_word_gb = Iconv.iconv(“GB2312//IGNORE”,”UTF-8//IGNORE”,g_word)
puts g_word_gb

sleep 1
ff.text_field(:name, ‘q’).set(g_word_gb[0])

或者:

g_word = ‘电’
puts g_word
g_word_utf = Iconv.iconv(“UTF-8//IGNORE”,”GB2312//IGNORE”,g_word)
puts g_word_utf

sleep 1
ff.text_field(:name, ‘q’).set(g_word_utf[0])

阅读全文…

分类: watir 标签:

检查watir和firewatir版本的方法

2010年1月7日 leleba 没有评论

编辑一个rb文件并执行,可以获得watir和firewatir的版本信息,以下是相应的代码:

require ‘watir’

puts Watir::IE::VERSION

阅读全文…

分类: watir 标签:

ruby的url解码函数和url编码函数

2010年1月5日 leleba 没有评论

含中文字符的url是一些乱码,如中文”个”,在url中表示为”%b8%f6″。有时需要进行url解码和编码,两个函数如下:

def URLDecode(str)
str.gsub!(/%[a-fA-F0-9]{2}/) { |x| x = x[1..2].hex.chr }
end

def URLEncode(str)
str.gsub!(/[^\w$&\-+.,\/:;=?@]/) { |x| x = format(%%%x, x[0]) }
end

分类: ruby 标签: