<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>网络编程 &#187; 弹窗</title>
	<atom:link href="http://www.sdgz.cn/tag/%e5%bc%b9%e7%aa%97/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sdgz.cn</link>
	<description>PHP RUBY</description>
	<lastBuildDate>Tue, 03 Aug 2010 17:14:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>在Watir中利用AutoIt关闭弹窗</title>
		<link>http://www.sdgz.cn/the-watir-closed-shells-using-autoit-window/</link>
		<comments>http://www.sdgz.cn/the-watir-closed-shells-using-autoit-window/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 14:14:31 +0000</pubDate>
		<dc:creator>leleba</dc:creator>
				<category><![CDATA[watir]]></category>
		<category><![CDATA[autoit]]></category>
		<category><![CDATA[popup]]></category>
		<category><![CDATA[弹窗]]></category>

		<guid isPermaLink="false">http://www.sdgz.cn/the-watir-closed-shells-using-autoit-window/</guid>
		<description><![CDATA[今天是一个高兴的日子，我终于成功地利用AutoIt关闭IE弹窗了。 利用Watir进行网页测试已经有2年多了，但始终在处理IE弹窗上卡壳，网上有不少介绍和例子可供借鉴，但以前均未能测试成功。 先将代码列出： require &#8216;watir&#8217; require &#8216;win32ole&#8217; require &#8216;watir/windowhelper&#8217; &#8230;&#8230;&#8230; &#8230;&#8230;&#8230; ie33.link(:id, &#8220;something&#8221;).click_no_wait sleep 3 #时间长短可能影响能否关闭弹窗 #sleep 2 puts &#8220;before autoit&#8221; autoit = WIN32OLE.new(&#8216;AutoItX3.Control&#8217;) puts &#8220;before loop do&#8221;     loop do       puts &#8220;in loop&#8221;       #ret = autoit.WinWaitActive(&#8220;Windows Internet Explorer&#8221;, &#8220;&#8221;,9)       #ret = autoit.WinWaitActive(&#8220;来自网页的信息&#8221;, &#8220;&#8221;,9)       ret = autoit.WinWaitActive(&#8220;Microsoft Internet Explorer&#8221;, &#8220;&#8221;,9)       puts &#8220;after [...]]]></description>
			<content:encoded><![CDATA[<div id="PublishedByWebStory-[5]1_605B6096DCCC4E51B10A013A9BCBFAC0_C3BDA40C79D04852B94909383ACE15CB">
<p>今天是一个高兴的日子，我终于成功地利用AutoIt关闭IE弹窗了。</p>
<p>利用Watir进行网页测试已经有2年多了，但始终在处理IE弹窗上卡壳，网上有不少介绍和例子可供借鉴，但以前均未能测试成功。</p>
<p>先将代码列出：</p>
<p>require &#8216;watir&#8217;<br />
require &#8216;win32ole&#8217;<br />
require &#8216;watir/windowhelper&#8217;</p>
<p>&#8230;&#8230;&#8230;</p>
<p>&#8230;&#8230;&#8230;</p>
<p>ie33.link(:id, &#8220;something&#8221;).click_no_wait<br />
sleep 3 #时间长短可能影响能否关闭弹窗</p>
<p>#sleep 2<br />
puts &#8220;before autoit&#8221;<br />
autoit = WIN32OLE.new(&#8216;AutoItX3.Control&#8217;)<br />
puts &#8220;before loop do&#8221;<br />
    loop do<br />
      puts &#8220;in loop&#8221;<br />
      #ret = autoit.WinWaitActive(&#8220;Windows Internet Explorer&#8221;, &#8220;&#8221;,9)<br />
      #ret = autoit.WinWaitActive(&#8220;来自网页的信息&#8221;, &#8220;&#8221;,9)<br />
      ret = autoit.WinWaitActive(&#8220;Microsoft Internet Explorer&#8221;, &#8220;&#8221;,9)</p>
<p>      puts &#8220;after ret&#8221;<br />
      puts(ret) </p>
<p>      if (ret==1)<br />
      autoit.Send(&#8220;{Enter}&#8221;)<br />
      exit<br />
      end<br />
      sleep 3<br />
    end</p>
<p>以前不成功的原因，主要是测试用电脑的环境不一样，今天尝试以上代码时，刚开始也不成功，ret始终等于0,偶然用鼠标碰了一下IE窗口，ret变为1。这才发现ie33.link(:id, &#8220;something&#8221;).click_no_wait语句之后的sleep时间长短很关键，不同的电脑以及网络速度不同，sleep时间不匹配的话，以上代码不能正常运行。</p>
<p>比较疑惑的是，以下代码不行：</p>
<p>require &#8216;watir&#8217;<br />
require &#8216;win32ole&#8217;<br />
require &#8216;watir/windowhelper&#8217;</p>
<p>&#8230;&#8230;&#8230;</p>
<p>&#8230;&#8230;&#8230;</p>
<p>Thread.new{</p>
<p>puts &#8220;before autoit&#8221;<br />
autoit = WIN32OLE.new(&#8216;AutoItX3.Control&#8217;)<br />
puts &#8220;before loop do&#8221;<br />
    loop do<br />
      puts &#8220;in loop&#8221;<br />
      #ret = autoit.WinWaitActive(&#8220;Windows Internet Explorer&#8221;, &#8220;&#8221;,9)<br />
      #ret = autoit.WinWaitActive(&#8220;来自网页的信息&#8221;, &#8220;&#8221;,9)<br />
      ret = autoit.WinWaitActive(&#8220;Microsoft Internet Explorer&#8221;, &#8220;&#8221;,9)</p>
<p>      puts &#8220;after ret&#8221;<br />
      puts(ret) </p>
<p>      if (ret==1)<br />
      autoit.Send(&#8220;{Enter}&#8221;)<br />
      exit<br />
      end<br />
      sleep 3<br />
    end</p>
<p>}</p>
<p>ie33.link(:id, &#8220;something&#8221;).click_no_wait</p>
<p>在将ie33.link(:id, &#8220;something&#8221;).click_no_wait修改为ie33.link(:id, &#8220;something&#8221;).click之后，以上代码运行成功。</p>
<p>第一次往往是最难的，以后通过watir + nobogiri +mechanize + autoit, 基本上可以解决大部分网页测试的问题了。</p></div>
<p><a href="http://www.sdgz.cn">我自己的原创: http://www.sdgz.cn</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sdgz.cn/the-watir-closed-shells-using-autoit-window/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

