I want to open an Internet Explorer page using vbscript, currently my script is as follows
Dim IE
Dim MyDocument
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = 0
IE.navigate "https://google.com"
This works fine. The problem is that I need to get the response of my webpage (google.com) i.e its contents in string format
I know it will be mostly gibberish but I require it for what I am working on
Thanks
You're almost there already. You just need to wait until the page has finished loading
While IE.ReadyState <> 4 : WScript.Sleep 100 : Wend
then you can access the page text like this:
WScript.Echo IE.document.body.innerText
or the page HTML like this:
WScript.Echo IE.document.body.innerHTML
Related
So I have a really annoying set of forms at work that I have to fill out daily and spend about 20 minutes doing so, I was looking to script this and have a basic sendkeys method that works but I wanted to improve this.
Dim WshShell, objIE, ElementCol
Dim LinkHref
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "Webpage Title"
Set objIE = CreateObject("InternetExplorer.Application")
wshShell.AppActivate objIE
Do While objIE.Busy
wscript.sleep 100
Loop
Set ElementCol = objIE.document.getElementsByTagName("a")
For Each Link In ElementCol
If Link.innerHTML = "*Specfic text" Then
Link.Click
Exit For
End If
Next
So I get an error on the Set ElementCol line that says null thats my first issue
For the *specific text is this allowed? Basically I know the text of the links will be Hello and world but could pop in like 1) Hello and 2) World or 1) World 2) Hello
I also want to after the click run a different .vbs script that fills out the form after that .vbs script completes it returns back to this initial page where I want to continue on this script to the next link.
Thanks a ton for any help!
I am trying to run a vbscript that will load up a html page in chrome and then do control+a which will select everything on the page, with the ultimate view to copy it and then paste it into excel.
this my script so far:
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim iURL
Dim objShell
iURL = "C:\Users\Aasfasf\AppData\Local\Temp\TD_80\hpqc\52136023e30\****\121200.html"
set objShell = CreateObject("WScript.Shell")
objShell.run(iURL)
WScript.Sleep 1500
WshShell.SendKeys "^a"
when I run it loads up the html page, but i dont think the control+a command is working as nothing is selected.
Two suggestions:
The focus is probably not on the content in chrome. Try sending a Tab key press a couple of times first to see if that fixes it.
A better approach to this might be to just read the contents of the file, then delete all the markup from the document using regex.
Excel can just load your web page without needing any help from you.
Alt + D, D, W
I have Web form and when I fill in fields with Vb-script i get popup message box OK/Cancel.
I can not get my script to click on that OK button. Anyone has solution?
Set IE = Createobject("InternetExplorer.Application")
IE.Navigate "*******/page"
IE.Visible = True
Wscript.Sleep 500
IE.Document.All.Item("user").Value = "username"
IE.Document.All.Item("pass").Value = "password"
IE.Document.All.Item("submit").Click ' ******here popup window appears
Wscript.Sleep 500
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "{ENTER}" ' ******this does not execute
I had the same problem, so I wrote a second script with the soul purpose of sending "ENTER" after a delay of 1 second (or whatever) and execute this file right before you "Click" Submit.
it's a very ugly workaround, but it works. so it'll have to do until I find a better selution
I am looking to automate our reporting. We currently have 5 Tabs in Firefox that we refer to for reporting. Each Tab has a unique url that changes each morning. We then have to each morning update these URLs (from an excel speadsheet). I would like to automate this. I do have a few constraints on this though. I cannot open a new tab for each new url (so basically it needs to be a url replace in each tab). I have looked into selenium but cannot get it to work
http://www.makeuseof.com/tag/using-vba-to-automate-internet-explorer-sessions-from-an-excel-spreadsheet/
and
http://www.makeuseof.com/tag/how-to-automate-firefox-or-chrome-with-vba-and-selenium/
So I was wondering if it could be done another way either using pure VBA or a batch file?
You need to add a reference to Microsoft Internet Controls and Microsoft Shell Controls and Automation. See screenshot below.
Code:
Sub Work_With_Open_IE_Instance()
Dim objShell As Shell
Dim objIE As InternetExplorer
Dim objWin As Object
Set objShell = New Shell
For Each objWin In objShell.Windows
If TypeName(objWin.Document) = "HTMLDocument" Then
Set objIE = objWin
'~~> This will display the URL of the IE which we will use to bind
Debug.Print objIE.LocationURL
'~~> Example to bind
'~~> Change URL to your existing URL
Select Case objIE.LocationURL
Case "https://www.google.com"
With objIE
.Refresh
'
'~~> Rest of the code
'
End With
Case "http://in.msn.com"
With objIE
.Refresh
'
'~~> Rest of the code
'
End With
End Select
End If
End If
Next objWin
End Sub
The Select Case is just for demonstration purpose. If you want to work with them one after the other then don't use Select Case. Use If/EndIf one after the other.
I'm very new to all this, but I'm trying to write a script to quickly fill out a form we use for helpdesk issues in an extremely busy area. I've tried various ways to get text into the field and scoured the internet looking for the correct way to do it, however either I'm searching for the wrong keywords or I'm blind.
the specific field I'm trying to manipulate is below:
input name="custom_ticket_form_field_2" type="text" style="width: 400px" value=""
The area I'm having trouble with:
Option Explicit
Dim objIE : Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
objIE.Visible = true
objIE.Navigate "http://xxxx/xxxx"
Do Until objIE.ReadyState = 4
WScript.Sleep 500
Loop
objIE.Document.getElementsBy**????**("custom_ticket_form_field_2").value = "laptop"
No matter how I try to identify(????) the "custon_ticket_form_field_2" I can't seem to get the text to end up there. Thanks for any suggestions!
You want:
objIE.Document.getElementsByName("custom_ticket_form_field_2").item(0).value