|
This is my first web page automation project, and I don't understand a couple of things.
So I have a form with a WebBrowser Object on it, I load the form, navigate to the web page, the web page loads ...
So the DocumentCompleted event fires?
I noticed it fires for every document requested, so I isolated the page I wanted
The page loads fine first.
Then I fire my automation script, which fixes the errors on the page, fills in the textboxes
I can see the page with my values, for about a millisecond.
[The part I don't' understand]
Then the page loads again, this time with scripts errors for everything, jquery and so forth, and the CSS is blown out.
[Question]
Am I wasting my time with these event handlers,
When I write back to the WebBrowser1.DocumentText, am I forcing the page to load again?
Private Sub frm_download_Data_Load(sender As Object, e As EventArgs) Handles Me.Load
'Suppress the Script Errors
SuppressScriptErrorsOnly(WebBrowser1, False)
'Navigate the the Reseller Login Page
WebBrowser1.Navigate(ddl_URL.Text)
End Sub
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) _
Handles WebBrowser1.DocumentCompleted
If Not (WebBrowser1.Url.AbsoluteUri = "about:blank") Then
If (e.Url.AbsolutePath = WebBrowser1.Url.AbsolutePath) Then
Select Case WebBrowser1.Url.AbsoluteUri
Case "http://page.asp"
AddHandler CType(sender, WebBrowser).Document.Window.Error, AddressOf Window_Error
http_automation_login.automate(WebBrowser1, g_userName, g_password)
RemoveHandler CType(sender, WebBrowser).Document.Window.Error, AddressOf Window_Error
End Select
End If
End If
End Sub
|
|
|
|
|
The document complete fires after every request.
So how do you tell if the page is fully loaded, so I can fire the submit?
|
|
|
|
|
jkirkerx wrote: When I write back to the WebBrowser1.DocumentText, am I forcing the page to load again?
You haven't shown that part of the code, but it's the most likely cause of the problem you described:
When you set this property, the WebBrowser control automatically navigates to the about:blank URL before loading the specified text. This means that the Navigating, Navigated, and DocumentCompleted events occur when you set this property, and the value of the Url property is no longer meaningful.
If you're reading the DocumentText , changing it, and then writing it back to the WebBrowser , the resulting document won't have the same base URL, so it won't be able to resolve any scripts, stylesheets or images which use relative paths.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
That's what happens, the page had to reload when I altered the HTML and wrote it back, causing major chaos there.
So I changed my approach on it, and changed the document using GetElementByID and SetAtrribute
Filled in the textboxes,
Figured out how to submit the page, and off I went into automation.
I've gotten quite far into the website now. Oh and yes this is sanctioned by the website owner, guess they have legacy excel spreadsheets that need data.
|
|
|
|
|
Guys..I wanna do excel data validation with XML.excel sheet contains no.of rows n columns.by using VBA macros..can u suggest me the best way to do it..if any sample code.
|
|
|
|
|
How about some details? What sort of validation? What doe s the data look like?
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
hi,
i need to get sql data directory path using vb .net code .
For example
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
using vb.net
Please help me to find solution
thanks.
|
|
|
|
|
Hi, what exactly do you want? Do you want to get the sql path or want to do some manipulation with it after getting the path?
|
|
|
|
|
Thanks for reply,
I just want to get path of Data folder to create new database using vb code , as per path varies from sql 2005 to sql 2008 so hard coded path wasn't great idea ... so i need to get only data folder path...
I got one sql query which returns exact data folder path that help me to solve my problem...
SELECT SUBSTRING(physical_name, 1,
CHARINDEX(N'master.mdf',
LOWER(physical_name)) - 1) DataFileLocation
FROM master.sys.master_files
WHERE database_id = 1 AND FILE_ID = 1
thanks again...
|
|
|
|
|
Specific files may be in different directories - SQL has default data locations, but the db administrator may choose to put them elsewhere.
for the default location, query the settings:
using (var connection = new SqlConnection("Data Source=.;Integrated Security=SSPI"))
{
var serverConnection = new ServerConnection(connection);
var server = new Server(serverConnection);
var defaultDataPath = string.IsNullOrEmpty(server.Settings.DefaultFile) ? server.MasterDBPath : server.Settings.DefaultFile;
var defaultLogPath = string.IsNullOrEmpty(server.Settings.DefaultLog) ? server.MasterDBLogPath : server.Settings.DefaultLog;
}
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
hi,
i need to get sql data directory path using vb .net code .
For example
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
using vb.net
Please help me to find solution
thanks.
|
|
|
|
|
Good day friends! Please, I need your help in this stuff<pre>Dim i As Integer
Dim result As Double
For i = -169 To 2400
result = 0.1857*i*120
Next
</pre>
Please, what will be the final answer because I tried manual calculation as follows but not sure is correct. And I got something like this:
result=0.1875*(-169)*120
result=-3802.5
I know that -169 To 2400 will loop from -168-0 AND continue from 0-2399
Please help.
|
|
|
|
|
I see nothing array related.
But, because result is simply recalculated every time, the final answer is:
result = 0.1857 * 2400 * 120. So.. 53481.6
|
|
|
|
|
Thank you. Does that mean that is only the ubound i.e 2400 that you take? And, what would be the answer to this
For i=(0 To 6, 10 To 20)
result= what!
Next
please help because am really confuse in this...
|
|
|
|
|
yes you are correct, the calculation runs as many times specified in your for loop.
BUT as you are not storing the result in a collection of any type the result variable is overwritten each time with the next calculation.
Every day, thousands of innocent plants are killed by vegetarians.
Help end the violence EAT BACON
|
|
|
|
|
You can download Visual Studio Express from Microsoft's site and run this code for yourself to see what it does. You'll learn more that way too.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Ok, I head you all. The problem am having is that, I downloaded a sample program and I saw this line of code
<pre>
For c = 0 To 10
For d = 0 To 12
If (c,d) = 1 Then
'action to perform
Else
'action to perforn
End if
Next
Next
</pre>
And, I don't really know how this will be equal to 1. Please, I need to know how this can be calculated so that the outcome will be equal to 1 in order for me to understand the flow of the code.
|
|
|
|
|
Otekpo Emmanuel wrote: If (c,d) = 1 Then
I haven't done VB in a long time but that sure doesn't look like valid VB code.
I think perhaps you meant:
If SomeArray(c,d) = 1 Then
That would just be a 2 dimensional array (like an Excel spreadsheet (Row, Column) which would also explain the 2 loops.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Thank you all for your replies. Sorry, if am too inquisitive. In the same program, the below lines of code exists:
Public DistX As Integer
Dim Length As Integer
Public DistToDark(1 To 1850) As Integer
DarkX = DistToDark(Length)
Where the value of Length increments by 1. So, assuming the Length value is 2, what will be the outcome of DarkX?
And, below is another
Dim angle, ray_inc as Double
Public sine(-160 To 2400) As Double
Dim i As Integer
For i = -160 To 2400
angle = ray_inc * i * piDivBy180 'where rays_inc =1.85
sine(i) = sine(angle)
Next
Friends please excercise patience and make me to understand the above logics. Believe me, I have searched google, read many articles but I still found it difficult. My questions are;
what could be the outcome of angle = ray_inc * i * piDivBy180 'where rays_inc =1.85?
What could be the possible outcome of
sine(i) = sine(angle)?
Will each element of array sine be equated to sine(angle)? E.g sine(0) = sine(angle) and so...
|
|
|
|
|
I still say the best thing for you to do is run the code yourself.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
result = 0.1857 * 2400 * 120. So.. 53481.6
|
|
|
|
|
Hi everyone,
I am getting a problem: I am using Crystal report XI R2 cliet, Visual Studio 2005, VB.NET. I can export report to .xls, .doc without errors on my computer (development machine).
But, when run my application (exe file) on another computer (test enviroment):
Some my reports can export to file doc, xls file without errors,
some reports get error: "Error in file C:\...\Temp\... The request could not be submitted for background processing" (when exporting to .xls file) and another error: "Error detected by export DLL (when exporting to .doc file)"
Are there anyone know this problem ?
Thank you very much !
|
|
|
|
|
I'd suggest searching for the specific error. There seems to be lots of possible reasons. The first google result I found has some: http://scn.sap.com/thread/1876394[^]
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Hello!
I have this Code :
Friend Class MyTestClass
Public Property nr As Integer
Public Property name As String
End Class
Dim mytest As New List(Of MyTestClass)
Dim k as integer=2
Dim s as string="123"
Private sub1()
Dim item As MyTestClass = New MyTestClass With {.nr = k, .FieldName =s}
mytest.Add(item)
Messagebox.show(mytest.contains(item))
End sub
Private Sub2 ()
Dim item As MyTestClass = New MyTestClass With {.nr = k, .FieldName =s)
Messagebox.show(mytest.contains(item))
End sub
Using a button I run first Sub1 , and Messagebox display the "True"
After using another button I run the Sub 2 , and the messagebox display "False".
But should display "True"
Why ?
What can I do to get the correct result ?
Thank you !
|
|
|
|
|
You are creating two items wit the same value, but they are still two separate items and therefore not Equal.
You could define a custom Equals method for the class.
|
|
|
|