Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

click on checkbox in webpage using vb

Posted on 2014-02-07
22
Medium Priority
?
379 Views
Last Modified: 2014-02-24
Any idea how to click on one of the check boxes in the below web page html

<ol id="cabinetDocuments">
   
    <li class="line" rel="Scan_2014_02_04_12_55_04_036.pdf">        
        <div class="unit">
            <input type="checkbox" /><span class="doc-icon pdf" Title="Scan_2014_02_04_12_55_04_036.pdf">Scan_2014_02_04_12_55_04_036.pdf</span>
        </div>
        <div class="lastUnit">
            2/4/2014 1:22:04 PM
        </div>
    </li>
   
    <li class="line" rel="Scan_2014_02_04_12_53_55_486.pdf">        
        <div class="unit">
            <input type="checkbox" /><span class="doc-icon pdf" Title="Scan_2014_02_04_12_53_55_486.pdf">Scan_2014_02_04_12_53_55_486.pdf</span>
        </div>
        <div class="lastUnit">
            2/4/2014 1:20:58 PM
        </div>
    </li>
   
    <li class="line" rel="Scan_2014_02_04_12_53_45_246.pdf">        
        <div class="unit">
            <input type="checkbox" /><span class="doc-icon pdf" Title="Scan_2014_02_04_12_53_45_246.pdf">Scan_2014_02_04_12_53_45_246.pdf</span>
        </div>
        <div class="lastUnit">
            2/4/2014 1:20:49 PM
        </div>
    </li>
   
    <li class="line" rel="Scan_2014_02_04_12_53_36_176.pdf">        
        <div class="unit">
            <input type="checkbox" /><span class="doc-icon pdf" Title="Scan_2014_02_04_12_53_36_176.pdf">Scan_2014_02_04_12_53_36_176.pdf</span>
        </div>
        <div class="lastUnit">
            2/4/2014 1:20:39 PM
        </div>
    </li>
0
Comment
Question by:rjef
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 10
  • 9
  • 3
22 Comments
 
LVL 43

Expert Comment

by:Rob
ID: 39843673
You need to give the checkbox an ID.
Do you want to set it checked when the page loads (add attribute "checked='checked'") or based on some kind of user action (onclick="")?
0
 
LVL 34

Expert Comment

by:Norie
ID: 39844553
Which checkbox do you want to click?

Also, what code do you have so far?
0
 

Author Comment

by:rjef
ID: 39845451
lets say i want to click on this check box
<li class="line" rel="Scan_2014_02_04_12_53_55_486.pdf">        
        <div class="unit">
            <input type="checkbox" /><span class="doc-icon pdf" Title="Scan_2014_02_04_12_53_55_486.pdf">Scan_2014_02_04_12_53_55_486.pdf</span>
        </div>
        <div class="lastUnit">
            2/4/2014 1:20:58 PM
        </div>
    </li>
i am trying to use the ie.document.getElementById(  but i do now the id of the checkbox.

also i forgot to metion i am using vb6
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 43

Expert Comment

by:Rob
ID: 39846192
You can't use an ID if there isn't one. Add the ID as an attribute to the checkbox

<input type="checkbox" id="chk1" />

Then use your code with that ID
0
 

Author Comment

by:rjef
ID: 39846320
maybe i don't understand.  I am trying to set the checkbox on a web site using the webbrowser control in vb6.  I have no control of the source.  you can email me at rjef041364@yahoo.com and i can send you the viewsource code for (the website ) you can review.
0
 
LVL 43

Expert Comment

by:Rob
ID: 39846367
No, you do but I also understand a little more now.  Given you don't have access to the site, you can't reference that checkbox using the getElementById function.  What you're going to have to do is navigate the XML manually:

http://jsbin.com/pogah/1/edit?html,js,output

document.querySelector(".line>div>input[type='checkbox']").checked="checked";
0
 

Author Comment

by:rjef
ID: 39847144
so how do put this in my vb app and how would i check the second checkbox instead of the 1st.
0
 
LVL 43

Expert Comment

by:Rob
ID: 39848395
You'd put it in the same place as you we going to with your getElementById.
To get the second you need to use a slightly different version of the function, querySelectorAll. This week return all elements matched rather than just the first.
0
 

Author Comment

by:rjef
ID: 39850093
Rob,
   Please email me at rjef041364@yahoo.com and i will send you the complete source could from the website.  you do understand i cannot change code on the website.  I want to manipulate from the client side.
0
 
LVL 34

Expert Comment

by:Norie
ID: 39850391
You don't know the id of the checkbox but you do know the id of the ordered list the checkbox is in.

So you can grab the list and then loop through it to find the checkbox you want and set it to be checked.
0
 

Author Comment

by:rjef
ID: 39850424
imnorie please provide an example
0
 
LVL 34

Expert Comment

by:Norie
ID: 39851812
Can you provide the URL of the site?
0
 
LVL 43

Expert Comment

by:Rob
ID: 39852423
Ah good catch. I missed that.
This week give the third element (zero based array)

document.getElementById("cabinetDocuments").children[2].firstChild.firstChild.firstChild.checked="checked"
0
 

Author Comment

by:rjef
ID: 39853122
imnorie,
the site is behind a firewall .  if you email me at rjef041364@yahoo.com i can send you all of
it.
0
 
LVL 43

Expert Comment

by:Rob
ID: 39854444
Did you see the code in my last comment?
0
 

Author Comment

by:rjef
ID: 39854693
yes not to sure how to use it though.   my example only had 4 firstchilds but there could be many many more.  would i just keep adding firstchild's?
0
 
LVL 43

Expert Comment

by:Rob
ID: 39854746
No, there are only ever going to be 3 firstchilds as they are referring to the elements like this:

document.getElementById("cabinetDocuments") <==== this is the OL ordered list
.children[2]   <===== THIS IS THE KEY - you vary the number to get each child in the OL
.firstChild      <===== This is the <li class="line" rel="Scan_2014_02_04_12_53_55_486.pdf">        
.firstChild      <===== This is the <div class="unit">
.firstChild.checked="checked"    <===== this is the checkbox <input type="checkbox" />
0
 

Author Comment

by:rjef
ID: 39856088
it says object required.

ie.document.getElementById("cabinetDocuments").children [2].firstChild.firstChild.firstChild.Checked = "checked"

also there is the in the source before the 'cabinetdocuments' if that matters.

    </ul>
    <div id="cabinetContentOuter">
        <div id="cabinetContent">
            <div id="cabinetResults">
0
 
LVL 43

Expert Comment

by:Rob
ID: 39869769
Not sure why firstChild doesn't work, however this does:

var n=3; // 4th checkbox
document.getElementById("cabinetDocuments").children[n].children[0].children[0].checked="checked";
0
 
LVL 43

Expert Comment

by:Rob
ID: 39869770
http://jsbin.com/cun/2/edit to see it in action
0
 

Author Comment

by:rjef
ID: 39870089
error
see attachment
Presentation1.jpg
0
 
LVL 43

Accepted Solution

by:
Rob earned 2000 total points
ID: 39871762
Ah ok, change uses round brackets for arrays so change all the square [ ] brackets to round ( )
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
I annotated my article on ransomware somewhat extensively, but I keep adding new references and wanted to put a link to the reference library.  Despite all the reference tools I have on hand, it was not easy to find a way to do this easily. I finall…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
Google currently has a new report that is in beta and coming soon to Webmaster Tool accounts. This Micro Tutorial will highlight new features for Google Webmaster Tools.

671 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question