Keep Learning

tom和coco最终还是没能一起吃宵夜。coco临时有点事情,在写完自动生成数据的代码后coco匆匆离去。

第二天一早coco上班时发现代码正常的运行了,100条数据已经生成完毕,coco心中宽慰,对watir webdriver刮目相看。

tom不知道为什么还没来上班,coco其实一直都有在留意tom,tom住的远,一般来的挺早,不会迟到,今天不知为何快到中午了他还没有过来,coco总觉得有点放心不下。

其实tom是因为临时有点事情请了假,他今天有个同学远道而来投奔他,tom一早就去火车站接人去了。

由于数据建立好了,coco今天的工作非常轻松,很快就测完了手头上的活,离下班还有两个小时,coco趁机复习了一下watir-webdriver操作表单的方法。

coco很清楚在测试的过程中填写和提交表单往往是很费时的工作,如果这些操作能通过watir-webdriver来完成的话,那么测试的工作量一定会降低不少。coco去网上查了下watir-webdriver操作表单的代码,好记性不如烂笔头,coco把这些零散的东西整理了一下,她以一个本地的html文件为例子,完成了大部分表单元素的操作。

full_form.html
<html>
	<head><title>form</title></head>
	<body>
		<form>
			<label>text_field<input name="user" /></label>
			<br />
			<label>text_area<textarea name="content" ></textarea></label>
			<br />
			<label>checkbox<input type="checkbox" name="check_me" /></label>
			<br />
			<label>radio
				<input type="radio" name="man" />
			</label>
			<br />
			<label>selet list
				<select name='sex'>
					<option value="man">man</option>
					<option value="woman">woman</option>
				</select>
			<br />
			<label>button<input type="submit" name="btn" onclick="javascript:alert('button clicked')" /></label>
			</label>
		</form>
	</body>
</html>

由于tom不在,coco独自一人完成操作表单元素代码时费了不少的力气,好在她发现乙醇翻译的watir-webdrier中文官网www.17test.info里面有不少可以参考的东西,在自己的反复尝试下,她终于完成了如下的代码。

operate_full_form.rb
require 'watir-webdriver'
ENV.delete('HTTP_PROXY')
b = Watir::Browser.new :chrome
file_path = 'file:///' + File.expand_path(File.join('.', 'full_form.html'))

b.goto file_path

# 设置单行文本框里的内容
b.text_field(:name, 'user').set 'coco'
# 打印出刚设置的内容
puts b.text_field(:name, 'user').value

# 很好用的flash方法,直接高亮要定位的元素
b.text_field(:name, 'user').flash
# 清除单行文本框中的内容
b.text_field(:name, 'user').clear

# 往多行文本框中写入内容
b.text_field(:name, 'content').set 'watir webdriver is better than selenium'

# 选择checkbox
b.checkbox(:name, 'check_me').set true
# 清除选择
b.checkbox(:name, 'check_me').set false

# 选择radio
b.radio(:name, 'man').set 
# 返回radio是否被选择
puts b.radio(:name, 'man').set? 

# 选择value为woman的选项
b.select(:name, 'sex').select 'woman'
# 返回选中的选项
puts b.select(:name, 'sex').selected_options

# 点击按钮
b.button(:name, 'btn').click

# 关闭浏览器
b.close

coco把她认为重要的地方都用注释写了下来,这样几天以后再看这些代码,coco也能清楚的知道里面到底干了些什么。

完成这些以后coco觉得心情不错,一天工作结束之后,coco难得的准时下班。

天色还是很早的,很少在日落前下班的coco在离家两站的地方下了车。tom就住这附近,coco准备从这里走回去,也许在路上会遇到她想见的人。

走了一会coco果然远远的看到tom了,不过他不是一个人。tom和一个女孩子并肩走着,有说有笑,手里还提着购物袋,里面有牛排和红酒。

coco很识趣的闪到了一边,没有让tom发现她。夕阳如血,孤零零的照着coco身上,她觉得有点冷,有点孤单。

    Categories: