【发布时间】:2012-12-25 00:52:37
【问题描述】:
我正在查看一个包含“选择文件/浏览”等按钮的覆盖网页 下面是页面中的一个sn-p
<form name = "form1" method = "post" action = "UploadPhoto.aspx?PhotoUploaderFor=1" id = "form1" enctype = "multipart/form-data">
<div>...</div>
<div class = "popup-form photoUploader">
<div class = "group data-row">
<label>...</label>
<input type ="file" name = "FileUpload1" id = "FileUpload1" class = "browse_file">
Watir 有 file_fields 可以处理文件上传 我已经在测试站点 (www.tinypic.com) 上进行过尝试,并且控件在那里运行良好
b.file_fields.exists?
将返回 true
但是,在我使用上面的 sn-p 查看的页面上,
b.file_fields.exists?
返回假
我以为可能是形式的原因,所以我也尝试了
b.form(:name => "form1").file_fields.exists?
这也返回 false 如果我尝试直接访问按钮本身,这也会返回 false
b.element(:xpath => "//input [@name = 'FileUpload1']").exists?
有人有什么想法吗?
编辑
表单在 iframe 中
<iframe id="Step1_Banner1_Popup_Photo_Photo_Iframe_PhotoUploader" class="photoUploaderFrame" scrolling="no" src="../MSReport3/UserControls/UploadPhoto.aspx?PhotoUploaderFor=1">
#document
<!DOCTYPE html PUBLIC "-//W3C//DTD CHTML 1.0 .....">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>...</head>
<body>
<code from above goes here>
【问题讨论】:
-
在本地使用您的 sn-p,
browser.file_field(:id => "FileUpload1").exists?返回 true。这个页面上可能有框架吗? -
嗨@orde,感谢您的关注。上面几个步骤创建了一个 iframe。
-
@orde 感谢您的提醒。即使我可以在 iframe 中找到表单,但不引用它,我想这不适用于所有其他元素。 b.frame(:id => "Step1_Banner_Popup_Photo_Photo_Iframe_PhotoUploader").file_field.exists?返回真
-
您的问题得到解答了吗?