Jump to content
Sign in to follow this  
jonson1986

Selection of Language from dropdown menu IE Help

Recommended Posts

jonson1986

Hey,

I'm trying to select language from drop-down menu on a webpage by _IEGetObjById but it's  not working, It mean autoit open the page but unable to select my desired value not even by matching text or by value, I'm looking for kind help...I've pastes my Autoit codes below along with source codes(using ie) of the webpage ;

#include <IE.au3>
$site = "http://example.com/upload"
$oIE = _IECreate($site)
$oDownloadSamples = _IEGetObjById($oIE, "language")
$oDownloadSamplesSelect = _IETagNameGetCollection($oDownloadSamples, "select", "language")
$oDownloadSamplesSelect.focus
_IEFormElementOptionSelect($oDownloadSamplesSelect, "French", 1, "byText")
Sleep (1000)
_IEFormElementOptionSelect($oDownloadSamplesSelect, "2", 1, "byValue")

HTML Codes using IE:

<html>
<head>
<div class="form-row">
<div class="col-7">
<label>Language</label>
<select name="language" class="select" id="language">
<option value="1">English</option>
<option value="2">French</option>
<option value="3">German</option>
<option value="4">Italian</option>
<option value="5">Japanese</option>
<option value="6">Spanish</option>
<option value="7">Russian</option>
<option value="8">Hindi</option>
<option value="9">Arabic</option>
<option value="10">Chinese</option>
<option value="11">Dutch</option>
<option value="12">Finnish</option>
<option value="13">Korean</option>
<option value="14">Norwegian</option>
<option value="15">Portuguese</option>
<option value="16">Romanian</option>
<option value="17">Serbian</option>
<option value="18">Croatian</option>
<option value="20">Polish</option>
<option value="21">Afar</option>
<option value="22">Abkhazian</option>
<option value="23">Afrikaans</option>
<option value="24">Amharic</option>
<option value="25">Assamese</option>
<option value="26">Aymara</option>
<option value="27">Azerbaijani</option>
<option value="28">Bashkir</option>
<option value="29">Belarusian</option>
<option value="30">Bulgarian</option>
<option value="31">Bihari</option>
<option value="32">Bislama</option>
<option value="33">Bengali/Bangla</option>
<option value="34">Tibetan</option>
<option value="35">Breton</option>
<option value="36">Catalan</option>
<option value="37">Corsican</option>
<option value="38">Czech</option>
<option value="39">Welsh</option>
<option value="40">Danish</option>
<option value="41">Bhutani</option>
<option value="42">Greek</option>
<option value="43">Esperanto</option>
<option value="44">Estonian</option>
<option value="45">Basque</option>
<option value="46">Persian</option>
<option value="47">Fiji</option>
<option value="48">Faeroese</option>
<option value="49">Frisian</option>
<option value="50">Irish</option>
<option value="51">Scots/Gaelic</option>
<option value="52">Galician</option>
<option value="53">Guarani</option>
<option value="54">Gujarati</option>
<option value="55">Hausa</option>
<option value="56">Hungarian</option>
<option value="57">Armenian</option>
<option value="58">Interlingua</option>
<option value="59">Interlingue</option>
<option value="60">Inupiak</option>
<option value="61">Indonesian</option>
<option value="62">Icelandic</option>
<option value="63">Hebrew</option>
<option value="64">Yiddish</option>
<option value="65">Javanese</option>
<option value="66">Georgian</option>
<option value="67">Kazakh</option>
<option value="68">Greenlandic</option>
<option value="69">Cambodian</option>
<option value="70">Kannada</option>
<option value="71">Kashmiri</option>
<option value="72">Kurdish</option>
<option value="73">Kirghiz</option>
<option value="74">Latin</option>
<option value="75">Lingala</option>
<option value="76">Laothian</option>
<option value="77">Lithuanian</option>
<option value="78">Latvian/Lettish</option>
<option value="79">Malagasy</option>
<option value="80">Maori</option>
<option value="81">Macedonian</option>
<option value="82">Malayalam</option>
<option value="83">Mongolian</option>
<option value="84">Moldavian</option>
<option value="85">Marathi</option>
<option value="86">Malay</option>
<option value="87">Maltese</option>
<option value="88">Burmese</option>
<option value="89">Nauru</option>
<option value="90">Nepali</option>
<option value="91">Occitan</option>
<option value="92">(Afan)/Oromoor/Oriya</option>
<option value="93">Punjabi</option>
<option value="94">Pashto/Pushto</option>
<option value="95">Quechua</option>
<option value="96">Rhaeto-Romance</option>
<option value="97">Kirundi</option>
<option value="98">Kinyarwanda</option>
<option value="99">Sanskrit</option>
<option value="100">Sindhi</option>
<option value="101">Sangro</option>
<option value="102">Serbo-Croatian</option>
<option value="103">Singhalese</option>
<option value="104">Slovak</option>
<option value="105">Slovenian</option>
<option value="106">Samoan</option>
<option value="107">Shona</option>
<option value="108">Somali</option>
<option value="109">Albanian</option>
<option value="110">Siswati</option>
<option value="111">Sesotho</option>
<option value="112">Sundanese</option>
<option value="113">Swedish</option>
<option value="114">Swahili</option>
<option value="115">Tamil</option>
<option value="116">Telugu</option>
<option value="117">Tajik</option>
<option value="118">Thai</option>
<option value="119">Tigrinya</option>
<option value="120">Turkmen</option>
<option value="121">Tagalog</option>
<option value="122">Setswana</option>
<option value="123">Tonga</option>
<option value="124">Turkish</option>
<option value="125">Tsonga</option>
<option value="126">Tatar</option>
<option value="127">Twi</option>
<option value="128">Ukrainian</option>
<option value="129">Urdu</option>
<option value="130">Uzbek</option>
<option value="131">Vietnamese</option>
<option value="132">Volapuk</option>
<option value="133">Wolof</option>
<option value="134">Xhosa</option>
<option value="135">Yoruba</option>
<option value="136">Zulu</option>
<option value="19">Other</option>
</select>
</div> 
</main>
</body>
</html>

 

Share this post


Link to post
Share on other sites
genius257

Hi @jonson1986.

First of all, in your code you select the "select" element by id, then try to find "select" elements within it. This results in a empty HTML collection.

Also you cannot call focus/OptionSelect on a collection, even if it contained elements. You would need to use a For loop.

Finally here is your answer:

#include <IE.au3>
$site = "http://example.com/upload"
$oIE = _IECreate($site)
$oDownloadSamplesSelect = _IEGetObjById($oIE, "language")
_IEFormElementOptionSelect($oDownloadSamplesSelect, "French", 1, "byText")
_IEFormElementOptionSelect($oDownloadSamplesSelect, "2", 1, "byValue")

 

  • Like 1

Share this post


Link to post
Share on other sites
jonson1986
30 minutes ago, genius257 said:

Hi @jonson1986.

First of all, in your code you select the "select" element by id, then try to find "select" elements within it. This results in a empty HTML collection.

Also you cannot call focus/OptionSelect on a collection, even if it contained elements. You would need to use a For loop.

Finally here is your answer:

#include <IE.au3>
$site = "http://example.com/upload"
$oIE = _IECreate($site)
$oDownloadSamplesSelect = _IEGetObjById($oIE, "language")
_IEFormElementOptionSelect($oDownloadSamplesSelect, "French", 1, "byText")
_IEFormElementOptionSelect($oDownloadSamplesSelect, "2", 1, "byValue")

 

Thanks you so much.

But I've to tell you one thing, there is still some mistake in the code you shared with after implementing this code nothing happen IE not able to select French from the list and I use sleep command as well so IE can easily load the page before move further to select the option but no error but not outcome as well..

Could you please review the codes you shared and help me to make this possible. Thanks.

Share this post


Link to post
Share on other sites
genius257

Hmmm should work. WIth the information provided i have no issues:

#include <IE.au3>
#include <Array.au3>
$oIE = _IECreate()
_IEBodyWriteHTML($oIE, StringRegExp(FileRead(@ScriptFullPath),"(?s)(<[h]tml>.*<\/html>)",1)[0])
$oDownloadSamplesSelect = _IEGetObjById($oIE, "language")
_IEFormElementOptionSelect($oDownloadSamplesSelect, "French", 1, "byText")
;~ _IEFormElementOptionSelect($oDownloadSamplesSelect, "2", 1, "byValue")

#cs
<html>
<head>
<div class="form-row">
<div class="col-7">
<label>Language</label>
<select name="language" class="select" id="language">
<option value="1">English</option>
<option value="2">French</option>
<option value="3">German</option>
<option value="4">Italian</option>
<option value="5">Japanese</option>
<option value="6">Spanish</option>
<option value="7">Russian</option>
<option value="8">Hindi</option>
<option value="9">Arabic</option>
<option value="10">Chinese</option>
<option value="11">Dutch</option>
<option value="12">Finnish</option>
<option value="13">Korean</option>
<option value="14">Norwegian</option>
<option value="15">Portuguese</option>
<option value="16">Romanian</option>
<option value="17">Serbian</option>
<option value="18">Croatian</option>
<option value="20">Polish</option>
<option value="21">Afar</option>
<option value="22">Abkhazian</option>
<option value="23">Afrikaans</option>
<option value="24">Amharic</option>
<option value="25">Assamese</option>
<option value="26">Aymara</option>
<option value="27">Azerbaijani</option>
<option value="28">Bashkir</option>
<option value="29">Belarusian</option>
<option value="30">Bulgarian</option>
<option value="31">Bihari</option>
<option value="32">Bislama</option>
<option value="33">Bengali/Bangla</option>
<option value="34">Tibetan</option>
<option value="35">Breton</option>
<option value="36">Catalan</option>
<option value="37">Corsican</option>
<option value="38">Czech</option>
<option value="39">Welsh</option>
<option value="40">Danish</option>
<option value="41">Bhutani</option>
<option value="42">Greek</option>
<option value="43">Esperanto</option>
<option value="44">Estonian</option>
<option value="45">Basque</option>
<option value="46">Persian</option>
<option value="47">Fiji</option>
<option value="48">Faeroese</option>
<option value="49">Frisian</option>
<option value="50">Irish</option>
<option value="51">Scots/Gaelic</option>
<option value="52">Galician</option>
<option value="53">Guarani</option>
<option value="54">Gujarati</option>
<option value="55">Hausa</option>
<option value="56">Hungarian</option>
<option value="57">Armenian</option>
<option value="58">Interlingua</option>
<option value="59">Interlingue</option>
<option value="60">Inupiak</option>
<option value="61">Indonesian</option>
<option value="62">Icelandic</option>
<option value="63">Hebrew</option>
<option value="64">Yiddish</option>
<option value="65">Javanese</option>
<option value="66">Georgian</option>
<option value="67">Kazakh</option>
<option value="68">Greenlandic</option>
<option value="69">Cambodian</option>
<option value="70">Kannada</option>
<option value="71">Kashmiri</option>
<option value="72">Kurdish</option>
<option value="73">Kirghiz</option>
<option value="74">Latin</option>
<option value="75">Lingala</option>
<option value="76">Laothian</option>
<option value="77">Lithuanian</option>
<option value="78">Latvian/Lettish</option>
<option value="79">Malagasy</option>
<option value="80">Maori</option>
<option value="81">Macedonian</option>
<option value="82">Malayalam</option>
<option value="83">Mongolian</option>
<option value="84">Moldavian</option>
<option value="85">Marathi</option>
<option value="86">Malay</option>
<option value="87">Maltese</option>
<option value="88">Burmese</option>
<option value="89">Nauru</option>
<option value="90">Nepali</option>
<option value="91">Occitan</option>
<option value="92">(Afan)/Oromoor/Oriya</option>
<option value="93">Punjabi</option>
<option value="94">Pashto/Pushto</option>
<option value="95">Quechua</option>
<option value="96">Rhaeto-Romance</option>
<option value="97">Kirundi</option>
<option value="98">Kinyarwanda</option>
<option value="99">Sanskrit</option>
<option value="100">Sindhi</option>
<option value="101">Sangro</option>
<option value="102">Serbo-Croatian</option>
<option value="103">Singhalese</option>
<option value="104">Slovak</option>
<option value="105">Slovenian</option>
<option value="106">Samoan</option>
<option value="107">Shona</option>
<option value="108">Somali</option>
<option value="109">Albanian</option>
<option value="110">Siswati</option>
<option value="111">Sesotho</option>
<option value="112">Sundanese</option>
<option value="113">Swedish</option>
<option value="114">Swahili</option>
<option value="115">Tamil</option>
<option value="116">Telugu</option>
<option value="117">Tajik</option>
<option value="118">Thai</option>
<option value="119">Tigrinya</option>
<option value="120">Turkmen</option>
<option value="121">Tagalog</option>
<option value="122">Setswana</option>
<option value="123">Tonga</option>
<option value="124">Turkish</option>
<option value="125">Tsonga</option>
<option value="126">Tatar</option>
<option value="127">Twi</option>
<option value="128">Ukrainian</option>
<option value="129">Urdu</option>
<option value="130">Uzbek</option>
<option value="131">Vietnamese</option>
<option value="132">Volapuk</option>
<option value="133">Wolof</option>
<option value="134">Xhosa</option>
<option value="135">Yoruba</option>
<option value="136">Zulu</option>
<option value="19">Other</option>
</select>
</div>
</main>
</body>
</html>
#CE

 

  • Like 1

Share this post


Link to post
Share on other sites
jonson1986

Hey,

Thank you so much and now it's also working for me but it's still not working on the to whom I'm trying to make it working because the website is using javascript and when I disabled javascript this code start working and when I enable the java script this code stopped working...could you please guide me how can I make this possible to work the same code under javascript type website scripts instead of on simple html only...my be javascript preventing our script not to change or select the appropriate value.

Have a great time

Edited by jonson1986

Share this post


Link to post
Share on other sites
Melba23

jonson1986,

When you reply, please use the "Reply to this topic" button at the top of the thread or the "Reply to this topic" editor at the bottom rather than the "Quote" button - others know what they wrote and it just pads the thread unnecessarily.

M23

 


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
genius257

Hmmm seems difficult without the original page to test on.

I'm guessing that some JavaScript changes some/the HTML on page load.

If the original element is still accessible after the JavaScript is done processing the DOM, the code with a modified selector will be the answer.

If not, you can:

  • modify the value with your own injected JavaScript, but that can be quite tricky.
  • trigger event(s) programmatically maybe with JavaScript if events more than the 'click' event is required.

It is annoying, but hard to avoid.

Edited by genius257

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
Sign in to follow this  

  • Similar Content

    • rm4453
      By rm4453
      I have a table I am parsing, to find specific vehicle information. I am unable to get _ArrayFindAll to return the only valid result with my test data.
      Below is a sample of the table's HTML:
      <td class="textCenter">2010</td> <td>TOYOTA</td> <td>TACOMA 4X4 DB</td> <td></td> <td>BLACK</td> <td class="textCenter">C</td> <td class="textCenter">6</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter">4X4</td> <td class="textCenter">Y</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">80,975</td> <td class="textRight" nowrap="nowrap">$16,800</td> </tr> <tr><!-- 308 --> <td class="textCenter">2010</td> <td>TOYOTA</td> <td>TACOMA 4X4 RG</td> <td></td> <td>BLACK</td> <td class="textCenter">R</td> <td class="textCenter">4</td> <td>GAS</td> <td class="textCenter">5</td> <td class="textCenter">4X4</td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">95,224</td> <td class="textRight" nowrap="nowrap">$9,500</td> </tr> <tr><!-- 309 --> <td class="textCenter">2011</td> <td>BUICK</td> <td>REGAL</td> <td>CXL RL4</td> <td>BLACK</td> <td class="textCenter">4</td> <td class="textCenter">4</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter"></td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">SR</td> <td class="textCenter">L</td> <td class="textRight" nowrap="nowrap">102,694</td> <td class="textRight" nowrap="nowrap">$5,000</td> </tr> <tr><!-- 310 --> <td class="textCenter">2011</td> <td>CHEVROLET</td> <td>AVALANCH 4X4 CR</td> <td>LS</td> <td>GRAY</td> <td class="textCenter">C</td> <td class="textCenter">8</td> <td>E</td> <td class="textCenter">A</td> <td class="textCenter">4X4</td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">64,759</td> <td class="textRight" nowrap="nowrap">$16,300</td> </tr> <tr><!-- 311 --> <td class="textCenter">2011</td> <td>CHEVROLET</td> <td>EQUINOX AWD 4C</td> <td>LT W/2LT</td> <td>BLACK</td> <td class="textCenter">S</td> <td class="textCenter">4</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter">AWD</td> <td class="textCenter">Y</td> <td>CD</td> <td class="textCenter">SR</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">91,896</td> <td class="textRight" nowrap="nowrap">$4,400</td> </tr> <tr><!-- 312 --> <td class="textCenter">2011</td> <td>CHEVROLET</td> <td>TAHOE 4X4 V8</td> <td>LTZ</td> <td>WHITE</td> <td class="textCenter">S</td> <td class="textCenter">8</td> <td>C</td> <td class="textCenter">A</td> <td class="textCenter">4X4</td> <td class="textCenter">A</td> <td>N</td> <td class="textCenter">MR</td> <td class="textCenter">L</td> <td class="textRight" nowrap="nowrap">126,982</td> <td class="textRight" nowrap="nowrap">$17,800</td> </tr> <tr><!-- 313 --> <td class="textCenter">2011</td> <td>CHEVROLET</td> <td>1500 SLV 4X4 EX</td> <td>LT</td> <td>GRAY</td> <td class="textCenter">X</td> <td class="textCenter">8</td> <td>GAS</td> <td class="textCenter">O</td> <td class="textCenter">4X4</td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">60,303</td> <td class="textRight" nowrap="nowrap">$18,100</td> </tr> <tr><!-- 314 --> <td class="textCenter">2011</td> <td>CHEVROLET</td> <td>1500 SLV 4X4 EX</td> <td>LT</td> <td>SILVER</td> <td class="textCenter">X</td> <td class="textCenter">8</td> <td>E</td> <td class="textCenter">O</td> <td class="textCenter">4X4</td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">89,403</td> <td class="textRight" nowrap="nowrap">$15,900</td> </tr> <tr><!-- 315 --> <td class="textCenter">2011</td> <td>CHEVROLET</td> <td>1500 SLV 4X4 EX</td> <td>LTZ</td> <td>BLUE</td> <td class="textCenter">X</td> <td class="textCenter">8</td> <td>E</td> <td class="textCenter">A</td> <td class="textCenter">4X4</td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">L</td> <td class="textRight" nowrap="nowrap">53,087</td> <td class="textRight" nowrap="nowrap">$17,700</td> </tr> <tr><!-- 316 --> <td class="textCenter">2011</td> <td>CHEVROLET</td> <td>3500 CUTAWAY</td> <td>WORK VAN</td> <td>WHITE</td> <td class="textCenter">S</td> <td class="textCenter"></td> <td></td> <td class="textCenter">A</td> <td class="textCenter">4X2</td> <td class="textCenter"></td> <td>N</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">202,477</td> <td class="textRight" nowrap="nowrap">$2,700</td> </tr> <tr><!-- 317 --> <td class="textCenter">2011</td> <td>CHRYSLER</td> <td>TOWN &amp; COUNTRY</td> <td>TOURING</td> <td>BLACK</td> <td class="textCenter">4</td> <td class="textCenter">6</td> <td>E</td> <td class="textCenter">A</td> <td class="textCenter">4X2</td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter"></td> <td class="textRight" nowrap="nowrap">198,541</td> <td class="textRight" nowrap="nowrap">$1,900</td> </tr> <tr><!-- 318 --> <td class="textCenter">2011</td> <td>DODGE</td> <td>DURANGO AWD V6</td> <td>CREW</td> <td>BLUE</td> <td class="textCenter">S</td> <td class="textCenter">6</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter">AWD</td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">SR</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">176,036</td> <td class="textRight" nowrap="nowrap">$2,800</td> </tr> <tr><!-- 319 --> <td class="textCenter">2011</td> <td>FORD</td> <td>FOCUS</td> <td>SE</td> <td>SILVER</td> <td class="textCenter">4</td> <td class="textCenter">4</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter"></td> <td class="textCenter">Y</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">101,929</td> <td class="textRight" nowrap="nowrap">$3,100</td> </tr> <tr><!-- 320 --> <td class="textCenter">2011</td> <td>FORD</td> <td>FUSION FWD 4C</td> <td>SEL</td> <td>WHITE</td> <td class="textCenter">4</td> <td class="textCenter">4</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter"></td> <td class="textCenter">Y</td> <td>CD</td> <td class="textCenter">SR</td> <td class="textCenter">L</td> <td class="textRight" nowrap="nowrap">78,290</td> <td class="textRight" nowrap="nowrap">$5,500</td> </tr> <tr><!-- 321 --> <td class="textCenter">2011</td> <td>FORD</td> <td>F150 4X4 CR</td> <td>XLT</td> <td>BLACK</td> <td class="textCenter">C</td> <td class="textCenter">8</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter">4X4</td> <td class="textCenter">Y</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">70,909</td> <td class="textRight" nowrap="nowrap">$16,000</td> </tr> <tr><!-- 322 --> <td class="textCenter">2011</td> <td>FORD</td> <td>MUSTANG V6 CPE</td> <td>V6 PREMIUM</td> <td>BLACK</td> <td class="textCenter">2</td> <td class="textCenter">6</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter">4X2</td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">L</td> <td class="textRight" nowrap="nowrap">92,531</td> <td class="textRight" nowrap="nowrap">$2,700</td> </tr> <tr><!-- 323 --> <td class="textCenter">2011</td> <td>GMC</td> <td>ACADIA FWD</td> <td>SLE</td> <td>RED</td> <td class="textCenter">4</td> <td class="textCenter">6</td> <td>GAS</td> <td class="textCenter">A</td> <td class="textCenter"></td> <td class="textCenter">A</td> <td>CD</td> <td class="textCenter">HT</td> <td class="textCenter">C</td> <td class="textRight" nowrap="nowrap">79,199</td> <td class="textRight" nowrap="nowrap">$10,700</td> A picture of the table test data is attached here:

      Here is the _query function, and all other relevant code that I can share.
       
      Func _query($aSel, $aUrls) $oIE = _login() If $oIE = "Return" Then Return EndIf $j = 0 While $j < UBound($aSel) - 1 $i = 1 $aucID ;Unable To Share What This Is Other Than Var Name. _IENavigate($oIE, "Something" & $aucID[0] & "Something") _IELoadWait($oIE, 100, 2000) $oObj = _IETableGetCollection($oIE, 3) $cars = _IETableWriteToArray_ProgressBar($oObj, True, "Processing Requested Information!") ;<---- Modified Version See Post For It: https://www.autoitscript.com/forum/topic/195335-solved-how-to-add-a-progress-bar-to-_ietablewritetoarray/?tab=comments#comment-1400699 $carsYear = _filter($cars, 0, 0, GUICtrlRead($year)) $carsMake = _filter($carsYear, 0, 1, GUICtrlRead($make)) Global $carsModel = _filter($carsMake, 0, 2, GUICtrlRead($model)) $i = 0 $engine = GUICtrlRead($engine) If $engine <> "" Then While $i < StringLen($engine) $carsEngine = _filter($carsModel, 0, 6 + $i, StringLeft($engine, 1)) ;_ArrayDisplay($carsModel, "Cars Model Before Array Delete") $x = 1 While $x <= UBound($carsModel) _ArrayDelete($carsModel, $x) $x += 1 WEnd ;_ArrayDisplay($carsModel, "Cars Model After Array Delete") ;_ArrayConcatenate($carsModel, $carsEngine) ;_ArrayDisplay($carsModel, "Cars Model After Concatenate") $engine = StringTrimLeft($engine, 1) $i += 1 WEnd Else Dim $carsEngine[1][16] EndIf _ArrayConcatenate($carsEngine, $carsModel) _ArrayDisplay($carsEngine, "Cars Engine") Dim $carsDriveTrain[1][16] Dim $carsDriveTrain2[1][16] $driveTrainVal = GUICtrlRead($driveTrain) If $driveTrainVal = "4x4" Or $driveTrainVal = "awd" Then $carsDriveTrain = _filter($carsEngine, 0, 9, "4") $carsDriveTrain2 = _filter($carsEngine, 0, 9, "a") ;~ _ArrayDisplay($carsDriveTrain, "Drive Train Before") ;~ If @error Then ;~ MsgBox("", "", "Cars Drive Train Error: " & @error) ;~ EndIf ;~ _ArrayDisplay($carsDriveTrain2, "Drive Train2 Before") ;~ If @error Then ;~ MsgBox("", "", "Cars Drive Train 2 Error: " & @error) ;~ EndIf _ArrayConcatenate($carsDriveTrain, $carsDriveTrain2) _ArrayDisplay($carsDriveTrain, "Drive Train After Concat") ElseIf $driveTrainVal = "" Then _ArrayConcatenate($carsDriveTrain, $carsEngine) Else $carsDriveTrain = _filter($carsEngine, 0, 9, $driveTrain) EndIf Dim $carsOdom[1][16] $min = GUICtrlRead($odomMin) $max = GUICtrlRead($odomMax) For $i = 0 To UBound($carsDriveTrain) - 1 If $carsDriveTrain[$i][14] > $min And $carsDriveTrain[$i][14] < $max Then _ArrayAdd($carsOdom, $carsDriveTrain[$i]) MsgBox("", "", "ADDED!") EndIf Next _ArrayDisplay($carsOdom, "Cars Odom") $j += 1 WEnd _IEQuit($oIE) EndFunc ;==>_query Func _filter($tofilter, $xpos1, $ypos1, $str) ;~ If UBound($tofilter, 1) <= 1 Then ;~ $endx = 0 ;~ Else ;~ $endx = UBound($tofilter, 1) - 1 ;~ EndIf ;~ $cars = _ArrayFindAll($tofilter, $str, $tofilter[$xpos1][$ypos1], $tofilter[$endx][$ypos1], 0, 1, $ypos1, False) $cars = _ArrayFindAll($tofilter, $str, Default, Default, 0, 1, $ypos1) Dim $carsFiltered[1][16] = [["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"]] ;_ArrayDisplay($carsFiltered) $i = 0 $uBound = UBound($cars) - 1 While $i < $uBound $filtered = _ArrayExtract($tofilter, $cars[$i], $cars[$i], 0, 15) ;_ArrayDisplay($filtered, "_filter Array of Filtered") _ArrayConcatenate($carsFiltered, $filtered) $i += 1 WEnd _ArrayDelete($carsFiltered, 0) Return $carsFiltered EndFunc ;==>_filter  
      If you know of a more efficient way of doing this please let me know would be more than happy to chew down my inefficiency while learning! (It's like my grandpa used to say, "The only criticism I can't use is that which is not given to me.")
       
      The Item an I am using to test the filter is:

       
    • rm4453
      By rm4453
      Hello,
       
      I am currently writing a program that parses a massive table from a website, and need a way to add a progress bar while parsing.
      I am currently using the function _IETableWriteToArray($oObj, True) to parse the array. I need the progress bar to update as the table is parsed, not just at the end of the parsing.
      Any help at all would be very much appreciated!
       
      *EDIT --> The array I am left with after parsing is $array[0-50000][16]
    • SkysLastChance
      By SkysLastChance
      I have a goofy problem. I am hoping someone could shed some light. The example is not going around the text box. It is way off. 
      I have seen some post blaming IE 11, however I have IE11 on my desktop and it works fine.
      Is there anything I can do that might fix this? 
       
      ; Open a browser with the form example and get a reference to the form ; textarea element. Get the coordinates and dimensions of the text area, ; outline its shape with the mouse and come to rest in the center #include <IE.au3> Local $oIE = _IE_Example("form") Local $oForm = _IEFormGetObjByName($oIE, "ExampleForm") Local $oTextArea = _IEFormElementGetObjByName($oForm, "textareaExample") ; Get coordinates and dimensions of the textarea Local $iScreenX = _IEPropertyGet($oTextArea, "screenx") Local $iScreenY = _IEPropertyGet($oTextArea, "screeny") Local $iWidth = _IEPropertyGet($oTextArea, "width") Local $iHeight = _IEPropertyGet($oTextArea, "height") ; Outline the textarea with the mouse, come to rest in the center Local $iMousespeed = 50 MouseMove($iScreenX, $iScreenY, $iMousespeed) MouseMove($iScreenX + $iWidth, $iScreenY, $iMousespeed) MouseMove($iScreenX + $iWidth, $iScreenY + $iHeight, $iMousespeed) MouseMove($iScreenX, $iScreenY + $iHeight, $iMousespeed) MouseMove($iScreenX, $iScreenY, $iMousespeed) MouseMove($iScreenX + $iWidth / 2, $iScreenY + $iHeight / 2, $iMousespeed)  
       
    • SkysLastChance
      By SkysLastChance
      So I have two things I am trying to click.
      Policy which works.
      $oInputs3 = _IETagNameGetCollection($oIE, "div") For $oInput3 in $oInputs3 If StringStripWS($oInput3.innertext,1) = "Policy" Then $target = $oInput3 _IELoadWait($target,"",70000) ExitLoop EndIf Next _IEAction($target, "click")  

      And Add Insurance which I havent been able to get to work. 
      $oInputs2 = _IETagNameGetCollection($oIE, "div") For $oInput2 in $oInputs2 If StringStripWS($oInput2.innertext,1) = "Add Insurance" Then $target = $oInput2 _IELoadWait($target,"",70000) ExitLoop EndIf Next _IEAction($target, "click")

      Any Ideas on what I am doing wrong?  I feel like it might be the spaces between >  Add Insurance  < but I am not sure. 
    • FMS
      By FMS
      Hello,
      I'm trying to read a div element and wait until it hits 100%.
      The structure is like :
      <div class="progress-bar" style="width: 48.0219%;  overflow: hidden; "></div>
      And want to wait until :
      <div class="progress-bar" style="width: 100%;  overflow: hidden; "></div>
      because afther this there will be an redirection whish i don't know the URL from and want to catsh this URL.
      And want to push a button on this redidertion page.

      Is there a best pratice way how to do this or is there a better way to wait for the redirection?
      Maybe wait until button exist or something?

      Does anybody could give me some tips about this challange?
       
      thnx in advanced.
       
      #include <IE.au3> Global $IE_flvto = _IECreate("https://www.website.com/",0,1,1,1) Global $oForm = _IEFormGetObjByName ($IE_flvto, "convertForm") Global $oText = _IEFormElementGetObjByName ($oForm, "convertUrl") _IEFormElementSetValue ($oText, "some text") _IEFormSubmit($oForm) ;wait for redirection ;if redirection loaded push button  
×