Sữa lỗi giùm em đoạn code điền dữ liệu vào Website ! (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

maxft2911

Thành viên chính thức
Tham gia
17/4/15
Bài viết
63
Được thích
0
Em chào mọi người, em có sưu tập được một đoạn code lấy giữ liệu excel điền vào ô trên trang web, nhưng lại bị lỗi, anh chị nào biết giúp em với!
em cảm ơn!

PHP:
Sub Travel()
Dim ieApp As InternetExplorer
Dim ieDoc As Object
Set ieApp = New InternetExplorer
ieApp.Visible = True
ieApp.navigate "www.travelocity.com"
Do While ieApp.Busy: DoEvents: Loop
Do Until ieApp.readyState = READYSTATE_COMPLETE: DoEvents: Loop
Set ieDoc = ieApp.document
With ieDoc.forms(0)
.PickupCity.Value = "DTW"
.PickupDate.Value = "01/01/2012"
.PickupTime.Value = "0830"
.DropOffdate.Value = "01/14/2012"
.DropOffTime.Value = "0830"
.submitEnd With
End Sub
 
Lần chỉnh sửa cuối:
Thử vầy xem:
Mã:
Dim ieApp As Object
Set ieApp = CreateObject("InternetExplorer.Application")
 
Upvote 0
Bị lỗi ở đoạn như hình nè anh: .PickupCity.Value = "DTW"
1.jpg
 
Upvote 0
Bạn tham khảo đoạn Code dưới đây. Các Id trên Web thì bạn dùng chức năng kiểm tra element trên từng control để lấy Id rồi làm tương tự
Mã:
Sub SubmitFormUrl()
    Const strURL As String = "www.travelocity.com"
    Dim objIE As Object
    
    Set objIE = CreateObject("internetexplorer.application")
    objIE.Navigate strURL
    objIE.Visible = True
    Do While objIE.Busy
        DoEvents
    Loop
    
    With objIE.document
        .getElementById("package-origin").Value = "DTW"
        .getElementById("package-departing").Value = #1/1/2012#
        .getElementById("package-returning").Value = #1/14/2012#
    End With
    
    On Error GoTo 0

End Sub
 
Upvote 0
Cảm ơn anh @dhn46 , code chạy ok rồi anh. em có một đoạn code (sưu tầm) và chỉnh sửa một xíu thấy cũng chạy ổn:
PHP:
Private Sub wpieautologin()
Dim ie As SHDocVw.InternetExplorer
Set ie = New SHDocVw.InternetExplorer
Call SpeedOn
On Error GoTo error
ie.Visible = True
ie.navigate "http://caulacbovb.com/forum/ucp.php?mode=login"
Do
DoEvents
Loop Until ie.readyState = 4
'ie READYSTATE has 5 different status codes, here we are using status 4:'Uninitialized = 0'Loading = 1'Loaded = 2'Interactive = 3'Complete = 4
Call ie.document.getElementById("username").setAttribute("value", "TEST")  'can use getElementsByName / getElementByID
Call ie.document.getElementById("password").setAttribute("value", "PASSTEST")'to find the "<input……/>" tag hyper link and to click the button
Set AllInputs = ie.document.getElementsByTagName("input") 'you can use any tagname as you wish
For Each hyper_link In AllInputs    
If hyper_link.ID = "autologin" Then 'you can use .name, .id etc        
hyper_link.Click    
ElseIf hyper_link.ID = "viewonline" Then        
hyper_link.Click    
'ElseIf hyper_link.Name = "login" Then        
'hyper_link.Click        
Exit For    
End If
Next
Do
DoEvents
Loop Until ie.readyState = 3
DoDoEvents
Loop Until ie.readyState = 4
'Application.SendKeys "{TAB}", True
'ie.QuitSpeedOffMsgBox ("Done !!!")
Exit Sub
error:    
SpeedOff    
MsgBox ("Check Website logged !!!")
End Sub
Em muốn hỏi một vài vấn đề như sau:
#1. Khi xem element của một trang web, thấy thuộc tính id hoặc name nhưng không có thuộc tính value, làm đoạn code trên không thể chạy được, vậy làm sao mình có thể điền được giá trị vào ô id đó?
1.PNG
<input type="text" autocomplete="off" name="username" placeholder="Tên đăng nhập" class="login-user">
#2. Em muốn chọn một mục trên trang web, nhưng khi xem Source Code thì không có thuộc tính id hay name ,vậy có cách nào để chọn được không?
2.jpg
<a href="#" class="responsive-menu-link dropdown-trigger dropdown-toggle">Tiện ích</a>
#3. Khi đã Load được và điền thông tin vào trang web, em muốn Download thông tin về máy, thì hiện ra bảng chọn đường lưu, vậy làm sao để thực hiện điều đó trong VBA?
#4. Em muốn chạy trên trình duyệt khác thì có được không? Và nếu được thì mình làm như thế nào?
Em xin cảm ơn!!!

 
Lần chỉnh sửa cuối:
Upvote 0
Tôi không test với Code cua bạn, còn áp dụng với #8 thì không thấy hiện tượng lỗi
Mã:
Sub SubmitFormUrl1()
    Const strURL As String = "http://www.caulacbovb.com/forum/ucp.php?mode=login&sid=b44b0c86d1d0a815d47366c42848c5b4"
    Dim objIE As Object
    
    Set objIE = CreateObject("internetexplorer.application")
    objIE.Navigate strURL
    objIE.Visible = True
    Do While objIE.Busy
        DoEvents
    Loop
    
    With objIE.document
        .getElementById("username").Value = "GPE"
    End With
    
    On Error GoTo 0

End Sub
 
Upvote 0
Dạ, em nói code của anh chạy ổn rồi mà, nhưng em muốn hỏi một vài điều ở bài #9 đó anh
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom