0
我有一个vba脚本,可以自动导航通过ups.com。直到涉及具有不同url的子窗口时,它才能正常工作。在那个子窗口中是一个简单的形式,但是当脚本提交表单时,它只是刷新屏幕,或者出现错误,表示网站不可用。的URL子窗口是在儿童窗口提交表格
https://wwwapps.ups.com/webClaims/address
和该窗口上的相关HTML
是
<script language="javascript" type="text/JavaScript">
function updateReturn()
{
\t "use strict" ;
\t opener.document.reportform.raddress.value = "true";
opener.document.reportform.submit();
top.close();
}
function updateDeliver()
{
\t "use strict" ;
opener.document.reportform.daddress.value = "true";
opener.document.reportform.submit();
top.close();
}
function updateContact()
{
\t "use strict" ;
opener.document.reportform.caddress.value = "true";
opener.document.reportform.submit();
top.close();
}
function updateOther()
{
\t "use strict" ;
opener.document.reportform.oaddress.value = "true";
opener.document.reportform.submit();
top.close();
}
function submitRefresh()
{
\t "use strict" ;
this.document.address.refresh.value = "true";
document.address.submit();
}
</script>
<div id="main">
<form name="address" action="/webClaims/address" method="post">
<input type="hidden" name="loc" value="en_US">
<input type="hidden" name="addrtype" value="f">
<input type="hidden" name="refresh" value="">
<table border="0" cellpadding="0" cellspacing="0" width="566">
<tr>
\t <td valign="top" width="422">
\t
\t <table border="0" cellpadding="0" cellspacing="0" width="100%">
\t <tr>
\t \t <td class="pi-mA1-t" valign="top">
\t \t
\t \t <table border="0" cellpadding="0" cellspacing="0" width="422">
\t \t <tr>
\t \t \t <td class="pi-m-txt-title">
Edit Shipped From Address
</td>
\t \t </tr>
\t \t </table>
\t \t
\t \t </td>
\t </tr>
\t <tr>
\t \t <td class="pi-mA1-c-t-spc"><img alt="" border="0" height="1" src="/img/1.gif" width="1"></td>
\t </tr>
\t <tr>
\t \t <td class="pi-mA1-c" valign="top">
\t \t
\t \t <table border="0" cellpadding="0" cellspacing="0" width="100%">
\t \t <tr>
\t \t \t <td>
<div class="pi-m-pad">
Please edit the address below. Required fields are shown in <span class="pi-h4">bold</span>.<br>
<br>
<span class="pi-h4">Company Name:</span>
<br>
<input class="modTxtMedium" name="companyName" maxlength="50" size="19" type="text" value="">
<br><br>
<span class="pi-h4">Name:</span>
<br>
<input class="modTxtMedium" name="name" maxlength="50" size="19" type="text" value="">
<br><br />
<span class="pi-h4">Country:</span>
<br>
<select name="country" class="modSelMedium" onChange="javascript:submitRefresh()" >
<option SELECTED value="US">United States</option>
<option value="CA">Canada</option>
</select>
<br><br>
<span class="pi-h4">Address Line 1:</span>
<br>
<input class="modTxtMedium" name="address1" maxlength="50" size="19" type="text" value="">
<br><br>
Address Line 2:
<br>
<input class="modTxtMedium" name="address2" maxlength="50" size="19" type="text" value="">
<br>
<span class="reqTxtInst">Apartment, suite, unit, building, floor, etc. </span>
<br><br>
Address Line 3:
<br>
<input class="modTxtMedium" name="address3" maxlength="50" size="19" type="text" value="">
<br>
<span class="reqTxtInst">Department, c/o, etc. </span>
<br><br>
<span class="pi-h4">City:</span>
<br>
<input class="modTxtMedium" name="city" maxlength="50" size="19" type="text" value="WALNUT">
<br><br>
<span class="pi-h4">State:</span>
<br>
<select name="state" class="modSelMedium" size="1">
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option SELECTED value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DC">District of Columbia</option>
<option value="DE">Delaware</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select>
<br><br>
<span class="pi-h4">Postal Code:</span>
<br>
<input class="modTxtMedium" name="postal" maxlength="9" size="19" type="text" value="">
<br><br>
\t \t \t </div>
\t \t \t </td>
\t \t </tr>
\t \t </table>
\t \t
<table border="0" cellpadding="0" cellspacing="0">
\t \t <tr>
\t \t \t <td>
<div class="pi-m-pad">
<span class="pi-h4">Telephone:</span>
<br>
<span class="pi-h4"><input class="modTxtMedium" name="telephone" maxlength="15" size="19" type="text" value="">
<br>
</div>
</td>
\t \t \t <td>
Ext:
<br>
<input class="modTxtSmall" name="extension" maxlength="5" size="4" type="text" value="">
\t \t \t <br>
\t \t \t </td>
\t \t </tr>
\t \t </table>
\t </td>
\t </tr>
\t <tr>
\t \t <td class="pi-mA1-c-b-spc"><img alt="" border="0" height="1" src="/img/1.gif" width="1"></td>
\t </tr>
\t <tr>
\t \t <td class="pi-mA1-line"><img alt="" border="0" height="1" src="/img/1.gif" width="1"></td>
\t </tr>
\t <tr>
\t \t <td class="pi-mA1-b" valign="top">
\t \t
\t \t <table border="0" cellpadding="0" cellspacing="0" width="422">
\t \t <tr>
\t \t \t <td class="pi-m-button" nowrap><input type="image" alt="Update" name="update_address" src="/img/en/btn_update.gif" WIDTH="51" HEIGHT="18"></td>
\t \t </tr>
\t \t </table>
\t \t
\t \t </td>
\t </tr>
\t </table>
\t
\t </td>
\t <td width="10"><img alt="" border="0" height="1" src="/img/1.gif" width="10"></td>
\t <td valign="top" width="134"><img alt="" border="0" height="1" src="/img/1.gif" width="134"></td>
</tr>
</table>
</form>
要填写表格,我只是做这个和它的作品没关系
IE.Navigate "https://wwwapps.ups.com/webClaims/address?addrtype=f&loc=en_US"
'IE.Document.Focus
Sleep (5000)
IE.Document.getElementsByName("companyName")(0).Value = "COMPANY"
IE.Document.getElementsByName("name")(0).Value = "n\a"
IE.Document.getElementsByName("address1")(0).Value = "222 address"
IE.Document.getElementsByName("postal")(0).Value = "99999"
IE.Document.getElementsByName("telephone")(0).Value = "111-111-1111"
但是当它来了提交表格,我遇到了麻烦。正如你所看到的,提交表单后,会进入生产摆在首位
<form name="address" action="/webClaims/address" method="post">
形式的URL,这样难怪形式没有去任何地方,当我做
IE.Document.getElementsByName("address")(0).submit
我看着他们有的JavaScript功能,也试过这个
Call IE.Document.parentWindow.execScript("submitRefresh", "JavaScript")
但有相同的结果。
当我尝试
Call IE.Document.parentWindow.execScript("updateContact()", "JavaScript")
我得到这个错误
Could not complete the operation due to error 80020101
我也试着点击出现提交表单
<input type="image" alt="Update" name="update_address" src="/img/en/btn_update.gif" WIDTH="51" HEIGHT="18">
,但它的按钮说input
标记不可点击。
我是否错过了关于HTML
或JavaScript
的一些需要与平时不同的方法?我不明白关于儿童窗户的事情吗,这使我的方法行不通?