Jason
asked on
Excel string to website textarea and submit
I need to send a string from excel cell to website textarea and sudmit form
Page source for textarea
Page Source for Submit
Page Source
Needs to be in a VS module function to be run by timer at a specified time
Can anyone help
Page source for textarea
<textarea cols="52" style="WIDTH: 440px; HEIGHT: 118px" onchange="BvUpdateLineCount()" class="codeInputBatch" wrap="off" rows="7" name="text" id="BvTextArea"></textarea>
Page Source for Submit
<a href="javascript:void(0)" onclick="top.frames['LoginFrame'].ValidateBetSubmit("Please log in and select \"Submit Batch\" again to place your bet.","BvSubmitBatchClicked('/ExpressBet/Upload/SubmitBatch.aspx?State=2','BetTicket','640','530');");">SUBMIT BATCH</a>
Page Source
tr id="BvMainContent">
<td class="lightBlue" align="left" valign="top" style="WIDTH: 453px" colspan="2">
<textarea id="BvTextArea" class="codeInputBatch" cols="52" style="WIDTH: 440px; HEIGHT: 118px" onchange="BvUpdateLineCount()" wrap="off" rows="7" name="text"></textarea>
</td>
<td class="lightBlue" align="right" valign="top">
<table cellspacing="2" cellpadding="0" border="0">
<tbody>
<tr>
<td class="ButtonGrey">
<td> </td>
<td class="ButtonBlue">
<a href="javascript:void(0)" onclick="top.frames['LoginFrame'].ValidateBetSubmit("Please log in and select \"Submit Batch\" again to place your bet.","BvSubmitBatchClicked('/ExpressBet/Upload/SubmitBatch.aspx?State=2','BetTicket','640','530');");">SUBMIT BATCH</a>
</td>
</tr>
<tr>
<tr>
</tbody>
</table>
</td>
</tr>
Needs to be in a VS module function to be run by timer at a specified time
Can anyone help
@akoster, there is a related question here: https://www.experts-exchange.com/questions/27292458/Extracting-from-webpage-using-vbs-and-writing-into-excel-cell.html
@Renegade_AD: sorry I've been busy on other things, I think I missed the other one but this is an interesting one as well. So the main difference is the absense of a submit button I think. The textarea has an id so should be easy to retrieve but the anchor with href must be looked up in a different manner. I'm assuming in reality it is not the only <a> tag on the page ;)
So, the first thing that remains a problem for me is that I don't have a full version of Visual Studio and no option to create an "Excel Workbook project". Also of course without an account I can't really test the other screens after the login, other than based on the page source you provide.
That being said, I still want to put some first little steps and see how far we get.
If this new code is being run in a Timer event handler, I wonder if it will work when we create a new "objIE", or maybe you have already made that a global variable?
The code for this part should be something like this:
@Renegade_AD: sorry I've been busy on other things, I think I missed the other one but this is an interesting one as well. So the main difference is the absense of a submit button I think. The textarea has an id so should be easy to retrieve but the anchor with href must be looked up in a different manner. I'm assuming in reality it is not the only <a> tag on the page ;)
So, the first thing that remains a problem for me is that I don't have a full version of Visual Studio and no option to create an "Excel Workbook project". Also of course without an account I can't really test the other screens after the login, other than based on the page source you provide.
That being said, I still want to put some first little steps and see how far we get.
If this new code is being run in a Timer event handler, I wonder if it will work when we create a new "objIE", or maybe you have already made that a global variable?
The code for this part should be something like this:
Dim objIE
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate "http://www.schutt.nl/ee/Q_27294498/testpage.htm"
objIE.Visible = true
While objIE.Busy = true
WScript.Sleep 100
Wend
objIE.Document.all.BvTextArea.InnerText = "test value for textarea"
Dim a
For Each a In objIE.document.GetElementsByTagName("A")
If a.innerText = "SUBMIT BATCH" Then
a.Click
Exit For
End If
Next
ASKER
Hi Robert
Ran the code something strange happened
the first time errors as in img. the second time went through
every other time since errors as in img
Very confusing maybe you understand
I attached this new code to the bottom of the previous one as it is all one function.
once we get this sorted and submits then its just a matter of logging off and closing explorer
Ran the code something strange happened
the first time errors as in img. the second time went through
every other time since errors as in img
Very confusing maybe you understand
I attached this new code to the bottom of the previous one as it is all one function.
once we get this sorted and submits then its just a matter of logging off and closing explorer
Weird. Well the 2nd and 3rd screenshot seem perfectly fine to me. In this situation the code should work.
It looks like the page is not always loading correctly maybe because the login session expired? Or there could be something going on with the frames. I see in the Submit code that the Login frame is referenced, so maybe we should be using objIE.document.frames... to reference the textarea and anchor as well. Can you examine the page source and possibly frame source(s) right after login and see how it is structured?
It looks like the page is not always loading correctly maybe because the login session expired? Or there could be something going on with the frames. I see in the Submit code that the Login frame is referenced, so maybe we should be using objIE.document.frames... to reference the textarea and anchor as well. Can you examine the page source and possibly frame source(s) right after login and see how it is structured?
ASKER
Hi Robert
Took a look it appears there is a form within a form
The first for is as you thought was at the start and the second on in set in an iframe
Page source
for form is on line 6 the close of this form is on line 230
<form name="Form1" method="post" action="Default.aspx?State =2" id="Form1" style="height:100%;">
the iframe which refers to the login is on line 43
<iframe frameborder="0" width="100%" height="57px" src="../LoginFrame.aspx?Ex pressBetMo de=Standar d" scrolling="no" id="LoginFrame" name="LoginFrame"></iframe >
This is the current code I am using
What I did was from the code you supplied first which logs in
at
objIE.Navigate("http://www.tab.com.au/ExpressBet/LoginFrame.aspx?State=2&ExpressBetMode=Standard")
then I nav to this page
objIE.Navigate("http://www.tab.com.au/ExpressBet/Standard/Default.aspx?State=2")
then used you second lot of code but it errors
maybe you could id the textarea in the form "Form1"
Hope this helps
Took a look it appears there is a form within a form
The first for is as you thought was at the start and the second on in set in an iframe
Page source
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" style="height:100%;">
<head><meta name="keywords" content="bet, betting, punt, punter, wagering, online gambling, horse racing, Melbourne Cup, greyhound, harness, galloping, trifecta, quinella, exacta, first 4, flexi, fixed odds, totalizator, secure, account, tote" /><meta name="description" content="Australia's premier racing betting site. Government approved and secure so you can bet on horse racing, harness racing and greyhound racing with confidence." /><link href="/Shared/Styles/sty_express.css?v=5.14.2.0" rel="stylesheet" type="text/css" /><title>
TAB Sportsbet - Horse Racing - Greyhound Racing - Harness Racing
</title></head>
<body class="betScreen" style="height:100%;" >
<form name="Form1" method="post" action="Default.aspx?State=2" id="Form1" style="height:100%;">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2Njg3MTA0MTgPZBYEAgQPZBYCAgUPZBYCAgEPFCsAAhAPZBYCHghvbmNoYW5nZQUUTnRnRGRsQ2hhbmdlZCh0aGlzKTsQFQ8KTmV4dCBUbyBHbw8mbmJzcDsmbmJzcDtBbGwRJm5ic3A7Jm5ic3A7UmFjZXMTJm5ic3A7Jm5ic3A7SGFybmVzcxYmbmJzcDsmbmJzcDtHcmV5aG91bmRzCE1lZXRpbmdzDyZuYnNwOyZuYnNwO0FsbBEmbmJzcDsmbmJzcDtSYWNlcxMmbmJzcDsmbmJzcDtIYXJuZXNzFiZuYnNwOyZuYnNwO0dyZXlob3VuZHMIUHJlc2FsZXMPJm5ic3A7Jm5ic3A7QWxsESZuYnNwOyZuYnNwO1JhY2VzEyZuYnNwOyZuYnNwO0hhcm5lc3MWJm5ic3A7Jm5ic3A7R3JleWhvdW5kcxUPAAdOVEd8QUxMDU5UR3xHYWxsb3BpbmcLTlRHfEhhcm5lc3MOTlRHfEdyZXlob3VuZHMAB01UR3xBTEwNTVRHfEdhbGxvcGluZwtNVEd8SGFybmVzcw5NVEd8R3JleWhvdW5kcwAHUFJFfEFMTA1QUkV8R2FsbG9waW5nC1BSRXxIYXJuZXNzDlBSRXxHcmV5aG91bmRzFCsDD2dnZ2dnZ2dnZ2dnZ2dnZxYBZmRkAgYPFgIeBFRleHQFkwE8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+TnRnQ2hhbmdlUmFjZSgnUicsJ0wnLCcyMDExLTA5LTEwVDAwOjAwOjAwJywnMDUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCcyMDExLTA5LTEwVDAwOjAwOjAwUkwwNV9MaW5rMicpKTs8L3NjcmlwdD5kZBfbYPGApQ16fTbaSO0KFe4LEjpn" />
</div>
<script src="/Shared/Scripts/Shared/GlobalCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/Shared/DeepMetrixCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/ExpressBet/UtilityCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/XmlHttpCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/ExpressBet/XmlHttpControlsCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/PageManagerCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/StandardModeCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/BetCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/BatchViewerCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/BetRulesCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/ExpressBet/BetAmountHeaderCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/Shared/DisplayAccountBalanceCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/Shared/CookieCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/CookieCallbackCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/ParlayFormulaCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/Betting/StandardBetsCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/ExpressBet/NextToGoCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<script src="/Shared/Scripts/expressbet/I18NCompiled.js?v=5.14.2.0" type="text/javascript"></script>
<input type="hidden" id="cacheSortInfo">
<table style="width:100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" style="width:100%;height:100%;">
<table border="0" cellpadding="0" cellspacing="0" style="width:100%;min-height:100%;height:100%;">
<tr>
<td colspan="2" valign="top" style="height:57px">
<div id="DIV_PAGE_HEADER">
<iframe frameborder="0" width="100%" height="57px" src="../LoginFrame.aspx?ExpressBetMode=Standard" scrolling="no" id="LoginFrame" name="LoginFrame"></iframe>
</div>
</td>
</tr>
<tr>
<td width="160" align="left" id="leftCol" valign="top">
<div id="DIV_NTG">
<input type="hidden" id="cacheNtgSelected" />
<select name="NextToGo1$NextToGoDdl1" id="NextToGo1_NextToGoDdl1" class="sideSelect" onchange="NtgDdlChanged(this);">
<option selected="selected" value="">Next To Go</option><option value="NTG|ALL"> All</option><option value="NTG|Galloping"> Races</option><option value="NTG|Harness"> Harness</option><option value="NTG|Greyhounds"> Greyhounds</option><option value="">Meetings</option><option value="MTG|ALL"> All</option><option value="MTG|Galloping"> Races</option><option value="MTG|Harness"> Harness</option><option value="MTG|Greyhounds"> Greyhounds</option><option value="">Presales</option><option value="PRE|ALL"> All</option><option value="PRE|Galloping"> Races</option><option value="PRE|Harness"> Harness</option><option value="PRE|Greyhounds"> Greyhounds</option>
</select>
<div align="right" id="refresh" class="padTop padBottom">
<b><a href="javascript:void(0);" onclick="NtgRefresh();">REFRESH</a></b>
</div>
<div id="DivNtgHtml"></div>
<div style="display:none">
<div id="DIV_NTG_NTG_VIEW">
<b>script</b><script type='text/javascript'>
//reparse=true;
NtgShowNtgView('Sat 10 Sep 2011',
new Array('R|L|2011-09-10T00:00:00|05|14:55|GOLD COAST|Galloping',
'R|M|2011-09-10T00:00:00|06|15:00|MOONEE VALLEY|Galloping',
'R|P|2011-09-10T00:00:00|05|15:05|KEMBLA GRANGE|Galloping',
'R|B|2011-09-10T00:00:00|05|15:10|DOOMBEN|Galloping',
'R|C|2011-09-10T00:00:00|05|15:15|SALE|Galloping',
'H|Y|2011-09-10T00:00:00|10|15:16|AWAPUNI|Galloping',
'R|S|2011-09-10T00:00:00|05|15:20|ROSEHILL|Galloping',
'R|W|2011-09-10T00:00:00|02|15:25|BELMONT|Galloping',
'R|A|2011-09-10T00:00:00|05|15:30|MORPHETTVILLE|Galloping',
'R|L|2011-09-10T00:00:00|06|15:35|GOLD COAST|Galloping',
'R|M|2011-09-10T00:00:00|07|15:40|MOONEE VALLEY|Galloping',
'R|P|2011-09-10T00:00:00|06|15:45|KEMBLA GRANGE|Galloping',
'R|B|2011-09-10T00:00:00|06|15:50|DOOMBEN|Galloping',
'R|C|2011-09-10T00:00:00|06|15:55|SALE|Galloping',
'R|S|2011-09-10T00:00:00|06|16:00|ROSEHILL|Galloping'));</script>
</div>
<div id="DIV_NTG_MTG_VIEW"></div>
<div id="DIV_NTG_RACES_VIEW"></div>
<div id="DIV_NTG_BET_TYPE"></div>
</div>
</div>
</td>
<td width="99%" align="left" id="mainContent" valign="top">
<div id="DIV_STD_MAIN" >
</div>
</td>
</tr>
<tr>
<td width="160" align="left" valign="bottom" >
</td>
<td width="99%" align="left" valign="bottom">
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td class="Footer FooterRightBorder">
<a class="FooterLinkDefault" onmouseover="this.className='FooterLinkMouseOver';" onmouseout="this.className='FooterLinkDefault';" href="http://www.tabaffiliates.com/ProgramDetails.asp" target="_blank">TAB Affiliates</a> | <a class="FooterLinkDefault" onmouseover="this.className='FooterLinkMouseOver';" onmouseout="this.className='FooterLinkDefault';" href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_sid=E*7UQveg&p_lva=128&p_faqid=71" target="_blank">Responsible Gambling</a> | <a class="FooterLinkDefault" onmouseover="this.className='FooterLinkMouseOver';" onmouseout="this.className='FooterLinkDefault';" href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=116" target="_blank">Betting Rules</a> | <a class="FooterLinkDefault" onmouseover="this.className='FooterLinkMouseOver';" onmouseout="this.className='FooterLinkDefault';" href="http://www.nowwhere.com.au/nswtab/Locator/default.aspx" target="_blank">Find a TAB</a> | <a class="FooterLinkDefault" onmouseover="this.className='FooterLinkMouseOver';" onmouseout="this.className='FooterLinkDefault';" href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=396" target="_blank">PCL</a> | <a class="FooterLinkDefault" onmouseover="this.className='FooterLinkMouseOver';" onmouseout="this.className='FooterLinkDefault';" href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_sid=E*7UQveg&p_lva=&p_faqid=128" target="_blank">Privacy</a> | <a class="FooterLinkDefault" onmouseover="this.className='FooterLinkMouseOver';" onmouseout="this.className='FooterLinkDefault';" href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_sid=E*7UQveg&p_lva=&p_faqid=129" target="_blank">Terms of Use</a> | <span class="FooterStaticText">© Tabcorp</span></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<iframe id="formPopupFrame" name="formPopupFrame" frameborder="0" src="" style="display:none"></iframe>
<iframe id="tipsPopupFrame" name="tipsPopupFrame" frameborder="0" src="" style="display:none"></iframe>
<div id="DIV_CMS_HOME" style="display:none"><TABLE cellSpacing="0" cellPadding="5" width="100%" border="0">
<TBODY>
<TR>
<TD style="FONT-WEIGHT: bold; FONT-SIZE: 18px; COLOR: #4169e1; FONT-FAMILY: arial, verdana" align="middle">Welcome to Express Bet</TD></TR></TBODY></TABLE>
<TABLE cellSpacing="10" cellPadding="0" width="100%" border="0">
<TBODY>
<TR>
<TD style="HEIGHT: 200px" vAlign="top" width="33%">
<TABLE height="100%" cellSpacing="0" cellPadding="5" width="100%" border="0">
<TBODY>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: #6699cc; BORDER-LEFT: #cccccc 1px solid; COLOR: #000066; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial; HEIGHT: 28px">Getting Started</TD></TR>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; FONT-SIZE: 12px; VERTICAL-ALIGN: top; BORDER-LEFT: #cccccc 1px solid; LINE-HEIGHT: 16px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial">To get started, simply click on any race in the <B>Next To Go</B> list on the left hand menu.<BR><BR>The Next To Go dropdown enables you to sort the race list by Galloping, Harness or Greyhound or by meeting name.<BR><BR><B>JOIN NOW!</B> - It only takes a few minutes to open a TAB Account and start betting online immediately! <A style="FONT-SIZE: 12px; FONT-FAMILY: Arial" href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=108">More</A></TD></TR></TBODY></TABLE></TD>
<TD style="HEIGHT: 200px" vAlign="top" width="33%">
<TABLE height="100%" cellSpacing="0" cellPadding="5" width="100%" border="0">
<TBODY>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: #ffffcc; BORDER-LEFT: #cccccc 1px solid; COLOR: #000066; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial; HEIGHT: 28px">Latest Update</TD></TR>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; FONT-SIZE: 12px; VERTICAL-ALIGN: top; BORDER-LEFT: #cccccc 1px solid; LINE-HEIGHT: 16px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial">Express Bet now enables customers to sort the runner information by Win or Place Approximate Dividends. <BR><BR>In addition, the runner selection columns are now adjacent to the Win and Place Approximate Dividends to enable easier bet placement.<BR><BR><A style="FONT-SIZE: 12px; LINE-HEIGHT: 16px; FONT-FAMILY: Arial" href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=238" target="_blank">Fixes and known issues since our last upgrade</A>.</TD></TR></TBODY></TABLE></TD>
<TD style="HEIGHT: 200px" vAlign="top" width="33%">
<TABLE height="100%" cellSpacing="0" cellPadding="5" width="100%" border="0">
<TBODY>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 12px; BORDER-LEFT: #cccccc 1px solid; COLOR: #000066; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial; HEIGHT: 28px">tab.mobi - <EM>Put the TAB in your pocket</EM></SPAN></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; FONT-SIZE: 12px; VERTICAL-ALIGN: top; BORDER-LEFT: #cccccc 1px solid; LINE-HEIGHT: 16px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial"><A href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=367" target="_blank"><IMG src="http://www.tabinfo.com.au/images/tab.mobi_V2.gif" align="right" vspace="5" border="0"></A><STRONG>tab.mobi</STRONG> is TAB's mobile wagering solution. <BR><BR>To access simply enter <STRONG>tab.mobi</STRONG> into your internet enabled mobile browser.<BR><STRONG>tab.mobi</STRONG> gives you the freedom to bet wherever you are with your TAB internet account.<BR><BR><A href="http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=367" target="_blank">More</A></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD style="HEIGHT: 255px" vAlign="top" width="33%">
<TABLE height="100%" cellSpacing="0" cellPadding="5" width="100%" border="0">
<TBODY>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: #6699cc; BORDER-LEFT: #cccccc 1px solid; COLOR: #000066; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial; HEIGHT: 28px">Batch Betting</TD></TR>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; FONT-SIZE: 12px; VERTICAL-ALIGN: top; BORDER-LEFT: #cccccc 1px solid; LINE-HEIGHT: 16px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial">Batch Betting enables you to place bets in the <A style="FONT-SIZE: 12px; FONT-FAMILY: Arial" onclick="window.open ('http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=266', 'newWin', 'scrollbars=yes,status=yes,width=800,height=600,resizable=yes')" href="javascript:void(0)">bet string format</A>. Up to 400 bets can be submitted at one time.<BR><BR>You can also build bets offline and then Submit the Batch File directly from your computer and you can save your list of Batch Bets to a file on your computer at any time.<BR><BR>Please visit our <A style="FONT-SIZE: 12px; FONT-FAMILY: Arial" onclick="window.open ('http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=266', 'newWin', 'scrollbars=yes,toolbar=yes,location=yes,status=yes,width=800,height=600,resizable=yes')" href="javascript:void()">Help Centre</A> for more information.</TD></TR></TBODY></TABLE></TD>
<TD style="HEIGHT: 255px" vAlign="top" width="33%">
<TABLE height="100%" cellSpacing="0" cellPadding="5" width="100%" border="0">
<TBODY>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: #6699cc; BORDER-LEFT: #cccccc 1px solid; COLOR: #000066; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial; HEIGHT: 28px">Expert Mode</TD></TR>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; FONT-SIZE: 12px; VERTICAL-ALIGN: top; BORDER-LEFT: #cccccc 1px solid; LINE-HEIGHT: 16px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial">This is a betting interface which provides the ability to place bets quickly without showing all the Approximate Dividend and Runner information for each race. <BR><BR>Simply click on the <B>EXPERT MODE</B> link at the top of the page to access it. When you want to return to the normal Express Bet mode simply click on <B>STANDARD MODE</B>.</TH> </TD></TR></TBODY></TABLE></TD>
<TD style="HEIGHT: 255px" vAlign="top" width="33%">
<TABLE height="100%" cellSpacing="0" cellPadding="5" width="100%" border="0">
<TBODY>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: #6699cc; BORDER-LEFT: #cccccc 1px solid; COLOR: #000066; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial; HEIGHT: 28px">Express Bet Preferences</TD></TR>
<TR>
<TD style="BORDER-RIGHT: #cccccc 1px solid; FONT-SIZE: 12px; VERTICAL-ALIGN: top; BORDER-LEFT: #cccccc 1px solid; LINE-HEIGHT: 16px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Arial">Preference settings allow you to customise your Express Bet experience. Simply select the <B>My Account</B> drop down at the top of the page and select <B>Preferences</B>. <BR><BR>Preferences include;
<LI>Set Flexi betting as your default betting option
<LI>Select your default bet type, ie. Doubles, Trifecta, Quaddie etc.
<LI>Set your maximum bet amount<BR><BR><SPAN style="FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: red">PLEASE NOTE: THESE PREFERENCES ONLY APPLY TO EXPRESS BET</SPAN> <BR><BR>Please visit our <A style="FONT-SIZE: 12px; FONT-FAMILY: Arial" onclick="window.open ('http://nettab.custhelp.com/cgi-bin/nettab.cfg/php/enduser/std_adp.php?p_faqid=319', 'newWin', 'scrollbars=yes,toolbar=yes,location=yes,status=yes,width=800,height=600')" href="javascript:void(0)">Help Centre</A> for more information. </LI></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></div>
<script type="text/javascript">
//<![CDATA[
var Jurisdiction = 'State=2';try{executeDeepMetrix('//deepmetrix.tab.com.au/dm.gif?');} catch (err) { }PmExpressMode = 'Standard';NumParlayFormulas = '6';var ParlayformulaInvalidPFNumberMessage = "Your formula number cannot be greater than the number of races selected.";var ParlayformulaRequiredMessage = "You must select a Formula.";var ParlayformulaInvalidLegsMessage = "You must select at least 2 races for a Parlayformula bet.";BsBetTicketUrl = 'https://www.tab.com.au/Betting/BetTicket/DisplayClientSideBetTicket.aspx?State=2';var _currentLang = "3081";var _currentCurr = "AUD";ExpBetInit('http://www.skyracing.com.au/tab/form.php?State=2&Locale=en-au',
'http://www.skyracing.com.au/tab/tips.php?State=2&Locale=en-au',
'/CrossSiteAuth/OutboundRedirectSky.aspx?State=2',
'dest',
'Date',
'MeetingCode',
'RacingCode',
'RaceNumber');PmSetDefaultBetType('WinPlace');FocusFirstFormField();I18N_Validation_Init('At least one selection must be placed in first column.'
,'Insufficient Selections for this bet type.'
,'To create a boxed bet, please select the \'Box\' checkbox.'
,'The Flexi option is not available with a Mystery Bet.'
,'A bet amount is required for Win and/or Place.'
,'Bet amount is required.'
,'Bet cost exceeds Maximum bet amount. Please try again.'
,'Mystery bets cannot be added to batch. Click "Submit This Bet" to place a Mystery bet.'
,'Insufficient Selections in both legs.'
,'Insufficient Selections for in leg 1.'
,'Insufficient Selections in leg 2.'
,'You have encountered the following error on the page'
,'Maximum number of bets allowed in a batch is 400.'
,'Batch contains no bets.'
,'No race selected.',
'To access the TAB Daily Form Service you must login to your account or open a betting account with Tabcorp.',
'You can have a maximum of {0} Roving Selection for a {1}',
'You can have a maximum of {0} Standout',
'You have already selected this race number in your parlayformula bet',
'Invalid amount specified');I18N_Std_Init('Runner',
'Form',
'SCR',
'LSCR',
'Mystery - Single',
'Mystery - Boxed',
'Field - All Runners',
'Barrier',
'Box',
'Handicap',
'Jockey',
'Driver',
'Trainers',
'Gallops',
'Harness',
'Greyhounds',
'Win',
'Place',
'No Third Dividend',
'PLACE BETTING UNAVAILABLE',
'Vacant');PmInit('Standard', 'WinPlace', 'WinPlace', false, 1, true, 0.5, 999999.5);//]]>
</script>
</form>
</body>
<script type='text/javascript'>NtgChangeRace('R','L','2011-09-10T00:00:00','05',document.getElementById('2011-09-10T00:00:00RL05_Link2'));</script>
</html>
for form is on line 6 the close of this form is on line 230
<form name="Form1" method="post" action="Default.aspx?State
the iframe which refers to the login is on line 43
<iframe frameborder="0" width="100%" height="57px" src="../LoginFrame.aspx?Ex
This is the current code I am using
Public Sub RunBet()
Dim objIE
Dim strtext
Dim strpasstext
Dim strbutton
strtext = "DisplayExpressTopNav1$TextboxLogin"
strpasstext = "DisplayExpressTopNav1$TextboxPassword"
strbutton = "DisplayExpressTopNav1$ButtonLogin"
objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("http://www.tab.com.au/ExpressBet/LoginFrame.aspx?State=2&ExpressBetMode=Standard")
objIE.Visible = True
While objIE.Busy = True
Sleep(100)
End While
objIE.Document.form1.elements(strtext).Value = "1100214"
objIE.Document.form1.elements(strpasstext).Value = "d230g3317"
objIE.Document.form1.elements(strbutton).Click()
While objIE.Busy = True
Sleep(100)
End While
Dim t
t = objIE.Document.DocumentElement.outerHTML
Dim pattern As String = _
"<!-- Account Number Label -->\s*<span id=""DisplayExpressTopNav1_LabelAccountNumber"" " & _
"class=""LoginBarText"">Account: (\d+)</span>" & _
"(?:\s*|.*?)*" & _
"<!-- Balance -->\s*<span id=""DisplayExpressTopNav1_LabelBalance"" " & _
"class=""LoginBarText"">Balance: \$(\d+\.\d+)</span>"
Dim Match As Match, foundAccount, foundBalance
Match = Regex.Match(t, pattern)
If Match.Groups.Count = 3 Then
foundAccount = Match.Groups(1).Value
foundBalance = Match.Groups(2).Value
Globals.Sheet3.Range("D11").Value = foundBalance
End If
objIE.Navigate("http://www.tab.com.au/ExpressBet/Standard/Default.aspx?State=2")
While objIE.Busy = True
Sleep(100)
End While
objIE.Document.all.BvTextArea.InnerText = "test value for textarea"
Dim a
For Each a In objIE.document.GetElementsByTagName("A")
If a.innerText = "SUBMIT BATCH" Then
a.Click()
Exit For
End If
Next
End Sub
What I did was from the code you supplied first which logs in
at
objIE.Navigate("http://www.tab.com.au/ExpressBet/LoginFrame.aspx?State=2&ExpressBetMode=Standard")
then I nav to this page
objIE.Navigate("http://www.tab.com.au/ExpressBet/Standard/Default.aspx?State=2")
then used you second lot of code but it errors
maybe you could id the textarea in the form "Form1"
Hope this helps
I'm wondering if the problem is mainly timing. Although the script waits for the IE object to be ready, it seems the iFrame is not always ready. Possibly it would have to wait for something else. At the moment there is another problem, the website has no races on...
I did test with a new page on my own site, that now contains an iframe as well, see if this works when they're back with races:
this replaces lines 53 - 55 from the code posted above.
I did test with a new page on my own site, that now contains an iframe as well, see if this works when they're back with races:
objIE.Document.frames("formPopupFrame").Document.all.BvTextArea.InnerText = "test value for textarea"
Dim a
For Each a In objIE.Document.frames("formPopupFrame").Document.GetElementsByTagName("A")
this replaces lines 53 - 55 from the code posted above.
ASKER
ASKER
Hi Robert
Resolved the textarea problem you were right it was only time I extended the sleep to 1000 It works every time
While objIE.Busy = True
Sleep(1000)
End While
objIE.Document.all.BvTextA rea.InnerT ext = "test value for textarea"
But the batch submit still not working with both codes
this the old code runs through but does not run the batch submit.
Dim a
For Each a In objIE.document.GetElements ByTagName( "A")
If a.innerText = "SUBMIT BATCH" Then
a.Click()
Exit For
End If
then new code errors
I clicked the submit batch it opens a new window
https://www.tab.com.au/ExpressBet/Submission/BetConfirmSummary.aspx?State=2
you get 2 options close which cancel the bet of submit which finalizes the bet
Resolved the textarea problem you were right it was only time I extended the sleep to 1000 It works every time
While objIE.Busy = True
Sleep(1000)
End While
objIE.Document.all.BvTextA
But the batch submit still not working with both codes
this the old code runs through but does not run the batch submit.
Dim a
For Each a In objIE.document.GetElements
If a.innerText = "SUBMIT BATCH" Then
a.Click()
Exit For
End If
then new code errors
I clicked the submit batch it opens a new window
https://www.tab.com.au/ExpressBet/Submission/BetConfirmSummary.aspx?State=2
you get 2 options close which cancel the bet of submit which finalizes the bet
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Seems to be working fine now real weird
Your a legend
I will open a new post only a few more steps. A popup now appears with a final submission we just need to accept this through the submit
then logout
Thanks again for your help I could not have don this without you thanks heaps
Your a legend
I will open a new post only a few more steps. A popup now appears with a final submission we just need to accept this through the submit
then logout
Thanks again for your help I could not have don this without you thanks heaps
When you want me to help you out in this direction, please let me know.