Dent

[SOLVED] form not recognising input upon submit

4 posts in this topic

#1 ·  Posted (edited)

Hey,

So I've written this code which successfully populates a form but when 'Calculate' is clicked it says that the loan amount & purchase price need to be entered; which of course they have been. Any idea why?

Here's the form https://online.leedsbuildingsociety.co.uk/public/mortgages/quick_enquiry.do

Here's the code:-

Local $oIE = _IECreate("https://online.leedsbuildingsociety.co.uk/public/mortgages/quick_enquiry.do")
If Not IsObj($oIE) Then Exit ConsoleWrite("Error in $oIE" & @CRLF)

Local $oIE = _IEAttach("Leeds Building Society - Borrowing Calculator")

_IELoadWait($oIE)

$oSelect = _IEGetObjByName($oIE, "termYears")
$oSelect.Value = $MtgTermYrs
$oSelect = _IEGetObjByName($oIE, "termMonths")
$oSelect.Value = $MtgTermMths

$oSelect = _IEGetObjByName($oIE, "adults17Over")
$oSelect.Value = ($NumOfApplicants + $OtherAdultOccupants)

Local $TotalDependents = ($Deps10To5 + $Deps16To11 + $Deps112To17 + $Deps20To5 + $Deps26To11 + $Deps212To17)

If $TotalDependents > 0 Then
   $oSelect = _IEGetObjByName($oIE, "childrenUnder17")
   $oSelect.Value = $TotalDependents
Else
EndIf

$Blah2 = ($MonthlyPensionIncomeOne + $MonthlyPensionCreditIncomeOne + $MonthlyInvestmentIncomeOne)
$Blah2 = $Blah2 * 12
$oSelect = _IEGetObjByName($oIE, "applicantOneGrossIncome")
$oSelect.Value = ($SalaryOne + $Blah2 + $SalaryPlusDividendsLatestYrOne)
$oSelect = _IEGetObjByName($oIE, "applicantOneCommission")
$Blah1 = (($BonusOne + $OvertimeOne + $CommissionOne) + ($MonthlyMaintenanceIncomeOne * 12))
$oSelect.Value = $Blah1
$oSelect = _IEGetObjByName($oIE, "applicantOneOvertimeOrBonus")
$oSelect.Value = ($MonthlyUniversalTaxCreditIncomeOne * 12)

$Blah2 = ($MonthlyPensionIncomeTwo + $MonthlyPensionCreditIncomeTwo + $MonthlyInvestmentIncomeTwo)
$Blah2 = $Blah2 * 12
$oSelect = _IEGetObjByName($oIE, "applicantTwoGrossIncome")
$oSelect.Value = ($SalaryTwo + $Blah2 + $SalaryPlusDividendsLatestYrTwo)
$oSelect = _IEGetObjByName($oIE, "applicantTwoCommission")
$Blah1 = (($BonusTwo + $OvertimeTwo + $CommissionTwo) + ($MonthlyMaintenanceIncomeTwo * 12))
$oSelect.Value = $Blah1
$oSelect = _IEGetObjByName($oIE, "applicantTwoOvertimeOrBonus")
$oSelect.Value = ($MonthlyUniversalTaxCreditIncomeTwo * 12)

$oSelect = _IEGetObjByName($oIE, "applicantOneLastYearProfit")
$oSelect.Value = ($NetPreTaxProfitLatestYrOne + $ShareOfNetPreTaxProfitLatestYrOne)
$oSelect = _IEGetObjByName($oIE, "applicantOneYear2Profit")
$oSelect.Value = ($NetPreTaxProfitPrevYrOne + $ShareOfNetPreTaxProfitPrevYrOne)

$oSelect = _IEGetObjByName($oIE, "applicantTwoLastYearProfit")
$oSelect.Value = ($NetPreTaxProfitLatestYrTwo + $ShareOfNetPreTaxProfitLatestYrTwo)
$oSelect = _IEGetObjByName($oIE, "applicantTwoYear2Profit")
$oSelect.Value = ($NetPreTaxProfitPrevYrTwo + $ShareOfNetPreTaxProfitPrevYrTwo)

$PropertyValue = _IEGetObjByName($oIE, "purchasePriceValuation")
$PropertyValue.Value = $PP

$MortgageRequired = _IEGetObjByName($oIE, "repaymentAmount")
$MortgageRequired.Value = $MtgAmt

$oSelect = _IEGetObjByName($oIE, "interestOnlyAmount")
$oSelect.Value = 0

$Button = _IEGetObjByName($oIE, "calculateBtn.value")
_IEAction($Button, "click")

_IELoadWait($oIE)

Exit

Obviously I've got values stored in all the variables so I haven't posted all that code.

Edited by Dent
solved

Share this post


Link to post
Share on other sites



You should look into using _IEFormElementSetValue instead of changing the value directly. This will handle the event firing that is currently missing from your script.

1 person likes this

Share this post


Link to post
Share on other sites

Thanks Danp2, I'll give that a try.

Share this post


Link to post
Share on other sites

That has worked perfectly. Thank-you.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • nassausky
      By nassausky
      Hi all,
       
      Anyone have any idea how to close all open tabs except a specific one I manually open.  Assuming I don't know what is open in all the tabs except just the one I want to keep open.
       
      I didn't want to use sendkeys and I was trying to use the following code to list the title (or url) of the 3 open tabs and  after I got that part working I would just close the other 2. This sample only displays the title of the first open tab
      #include <IE.au3> Const $ie_new_in_tab = 0x0800 $oIE = _IECreate("https://www.autoitscript.com") __IENavigate($oIE, "https://www.autoitscript.com/forum/", 1, $ie_new_in_tab) ;(obj,url,wait,param) __IENavigate($oIE, "https://www.google.com/", 1, $ie_new_in_tab) ;(obj,url,wait,param) Local $aIE[1] $aIE[0] = 0 Local $i = 1, $oIE While 1     $oIE = _IEAttach("", "instance", $i)     If @error = $_IEStatus_NoMatch Then ExitLoop     ConsoleWrite(_IEPropertyGet($oIE, "title") & @CRLF)     ReDim $aIE[$i + 1]     $aIE[$i] = $oIE ;each item holds object     $aIE[0] = $i ;first item holds count     $i += 1 WEnd MsgBox($MB_SYSTEMMODAL, "Browsers Found", "Number of browser instances in the array: " & $aIE[0]) ; This doesn't return the list of tabs in the console just the first tab  
      Thanks for any and all help
    • toto22
      By toto22
      I'm trying to click on Java Dropbox using IE. However, I'm running into problems. There is a Dropbox "Please Select" with two options "Buy" and "Sell".
      I'm able to click on a drop box (please see code below) but i'm unable to select "Buy" or "Sell"".
      Local $sMyString = "Please Select" ;############ ENTER ############# Local $oLinks = _IELinkGetCollection($oIE) For $oLink In $oLinks Local $sLinkText = _IEPropertyGet($oLink, "innerText") If StringInStr($sLinkText, $sMyString) Then _IEAction($oLink, "click") ExitLoop EndIf Next  
      Please help
       
         
    • Gowrisankar
      By Gowrisankar
      Hello everyone,
      I'm working on a task where, a PDF file is opened (in IE browser) when I click a link in a website.
      I have to read the first page of the PDF to find particular strings. Can you please share some ideas?
    • Seminko
      By Seminko
      Hey,
      i would like to set a value into an INPUT field.
      Checked the _IEFormElementSetValue function but that does require _IEFormGetObjByName and this is where the problem comes in. The input field I want to write to is not a part of a form tag. It is part of a table.
      <input type="text" class="w2" id="nabidka_vozidel_formular_tach_od" name="nabidka_vozidel_formular_tach_od" onchange="GLOBAL.pocetInzerceNZ(&quot;nabidka_vozidel_formular&quot;,&quot;tach_od&quot;,&quot;&quot;);" autocomplete="off"> I tried this but that didn't work:
      $oDownloadSamples = _IEGetObjById($oIE, "nabidka_vozidel_formular_tach_od") _IEFormElementSetValue($oDownloadSamples, "123") If you want to try the site I'm working with is https://www.tipcars.cz/. There is a menu on the top left hand side and if you click the "vyhledat" button the input fields will show up.
      Thanks
    • Seminko
      By Seminko
      I am now able to populate the dropdown menus at https://www.tipcars.com/.
      The dropdowns are dynamic and do not have a Text value, only ids.
      Is there a way to get all the available options from a dropdown?
      $url = "https://www.tipcars.com/" $oIE = _IECreate($url) _IELoadWait($oIE) $oDownloadSamples = _IEGetObjById($oIE, "homepage_vyhl_frm_vozidlo") _IEFormElementOptionSelect($oDownloadSamples, "C") Above code, populates ID 'C' into the 'druh' dropdown, which results in selecting 'užitkové'. 
      Is there a way so I can grab all of the options from the dropdown menu? I could easily grab all the IDs but I am afraid they will change in the future so I would much rather match the text titles and assign the option IDs grabbed from site.
      This is what the options are according to Chrome:
      <select class="w1"id="homepage_vyhl_frm_vozidlo"name="homepage_vyhl_frm_vozidlo"onchange="try{NABIDKA_VOZIDEL_FORMULAR.naplnSelectZnacka('homepage_vyhl_frm');GLOBAL.pocetInzerceHZ('homepage_vyhl_frm','vozidlo');}catch(ex){odeslatJsChybu('formHOMEPAGE onChange 1: ' + ex.message, 'formHomePage onChange 1', -1);}"> <option value="A" style="color: black;">osobní a terénní (56 334)</option> <option value="C" style="color: black;">užitkové (4 333)</option> <option value="D" style="color: black;">nákladní (3 742)</option> <option value="E" style="color: black;">autobusy (56)</option> <option value="F" style="color: black;">obytné (373)</option> <option value="G" style="color: black;">přívěsy (1 179)</option> <option value="J" style="color: black;">motorky (780)</option> <option value="S" style="color: black;">pracovní stroje (605)</option> <option value="L" style="color: black;">ostatní (235)</option></select> Also, this cannot be grabbed by _INetGetSource.
      Thanks