Sử dụng SeleniumBasic mở trình duyệt chrome theo profile chrome

Liên hệ QC

quockhanhzz

Thành viên mới
Tham gia
29/7/19
Bài viết
23
Được thích
2
Chào mọi người.
Em mới tìm hiểu VBA của excel.
Em muốn viết 1 đoạn code dùng Selenium Webdriver để có thể truy cập 1 thư mục chứa những user chrome mình đã tạo, và khi mở user chrome đó sẽ tự động mở 1 trang web do mình định sẵn.
Em không biết viết như thế nào, mong được mọi người hướng dẫn ạ. Em cám ơn.
 
Lần chỉnh sửa cuối:
User chrome là gì vậy bạn, thư mục chứa user chrome mình mới nghe lần đầu
 
Upvote 0
đoán là vầy
221968
 
Upvote 0
User chrome là gì vậy bạn, thư mục chứa user chrome mình mới nghe lần đầu

đây nè bạn, 1 tài khoản google là 1 user
Bài đã được tự động gộp:

nó tương tự như là 1 shortcut của chrome ak bác
mà nó có nhiều shortcut, em muốn dùng vòng lặp mở từng cái đó lên ak
 

File đính kèm

  • Capture.PNG
    Capture.PNG
    5.2 KB · Đọc: 12
  • Capture.PNG
    Capture.PNG
    5.2 KB · Đọc: 14
Upvote 0
Select, right click, properties, cho mình xem thử command lines nó là gì ?
 
Upvote 0
Bạn thử đoạn code dưới đây:

Đã dùng VBA thì không cần đến Shortcut. Bạn chỉ cần tạo Command Lines theo như Shortcut đã tạo là được.

Mỗi UserProfile nặng khoảng 600MB, bạn tạo càng nhiều càng chiếm dung lượng ổ cứng.


PHP:
'Vào Tools -> References thêm Microsoft Scripting Runtime'
Sub Test()
  RunURLWithChrome "www.google.com", "D:\Document\Profile1"
  'Hoặc RunURLWithChrome "www.google.com", "D:\Document\Profile1", "--disable-gpu" '.... các Argument của Chrome
End Sub

Sub RunURLWithChrome(URL$, Optional UserProfile$, Optional Arguments$ )
  Dim oShell As Object
  'Sửa đường dẫn trùng với Thư mục gốc của Chrome'
  Const Chrome = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
  Set oShell = CreateObject("WScript.Shell")
  oShell.Run _
    Chrome & _
    IIf(Arguments <> "", " " & Arguments,"") & _
    IIf(UserProfile <> "", " --user-data-dir=" & UserProfile,"") & _
    " --lang=vi" & IIf(URL <> "", " ", "") & URL
  Set oShell = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử đoạn code dưới đây:

Đã dùng VBA thì không cần đến Shortcut. Bạn chỉ cần tạo Command Lines theo như Shortcut đã tạo là được.

Mỗi UserProfile nặng khoảng 600MB, bạn tạo càng nhiều càng chiếm dung lượng ổ cứng.


PHP:
'Vào Tools -> References thêm Microsoft Scripting Runtime'
Sub Test()
  RunURLWithChrome "www.google.com", "D:\Document\Profile1"
  'Hoặc RunURLWithChrome "www.google.com", "D:\Document\Profile1", "--disible-cpu" '.... các Argument của Chrome
End Sub

Sub RunURLWithChrome(URL$, Optional UserProfile$, Optional Arguments$ )
  Dim oShell As Object
  'Sửa đường dẫn trùng với Thư mục gốc của Chrome'
  Const Chrome = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
  Set oShell = CreateObject("WScript.Shell")
  oShell.Run _
    Chrome & _
    IIf(Arguments <> "", " " & Arguments,"") & _
    IIf(UserProfile <> "", " --user-data-dir=" & UserProfile,"") & _
    " --lang=vi" & IIf(URL <> "", " ", "") & URL
  Set oShell = Nothing
End Sub

cám ơn a.
e đã thử thì nó sẽ mở userprofile mới, chứ không phải userprofile e tạo trước đó ạ, e muốn là mở từng userprofile e đã tạo sẵn ak a,
 

File đính kèm

  • Capture.PNG
    Capture.PNG
    49.5 KB · Đọc: 26
  • 1.PNG
    1.PNG
    17.8 KB · Đọc: 23
  • 2.PNG
    2.PNG
    13.6 KB · Đọc: 22
Lần chỉnh sửa cuối:
Upvote 0
Hì hì, user profile directory của từng user trong Google Chrome nó nằm ở đâu bạn, nằm trên Desktop à ?
 
Lần chỉnh sửa cuối:
Upvote 0
Sao để được trên đó hay vậy ? Trong thư mục đó có gì vậy bạn ?
 
Upvote 0
Khổ ghê, đó chỉ là các file shortcut. File shotcut chạy đúng không ? Nếu đúng thì properties - command lines xem command line là gì, rồi sữa lại cái code đi. Code sai đó.
 
Upvote 0
Khổ ghê, đó chỉ là các file shortcut. File shotcut chạy đúng không ? Nếu đúng thì properties - command lines xem command line là gì, rồi sữa lại cái code đi. Code sai đó.

vâng a, chạy được rồi, mà e dùng cái selenium webdriver để thực hiện ak anh, khi dùng nó là nó tự mở 1 user mới, e muốn nó mở user e tạo sẵn ak a
 
Upvote 0
Chạy được thì tốt rồi, có vài điểm cần chú ý, sữa cũng được, không sữa cũng chả chết thằng Tây nào:
1.Đã CreateObject thì không cần add reference.
2. Microsoft Scripting Runtime (scrrun.dll) không có define object/interface WScript.Shell
3. WScript.Shell interface nó nằm trong wshom.ocx: Windows Script Host Object Model
4. Cẩn thận ocx này không có trên Win64, nếu có tui nghĩ cũng không nên xài, vì phải load thêm nó nữa vào bộ nhớ của Excel/VBA.
Nên dùng các interface có sẵn của shell32.dll. Vì shell32.dll luôn luôn đã được load vào bộ nhớ với các app của Offices
Shell.ShellExecute(File As String, [vArgs], [vDir], [vOperation], [vShow])
 
Upvote 0
Chạy được thì tốt rồi, có vài điểm cần chú ý, sữa cũng được, không sữa cũng chả chết thằng Tây nào:
1.Đã CreateObject thì không cần add reference.
2. Microsoft Scripting Runtime (scrrun.dll) không có define object/interface WScript.Shell
3. WScript.Shell interface nó nằm trong wshom.ocx: Windows Script Host Object Model
4. Cẩn thận ocx này không có trên Win64, nếu có tui nghĩ cũng không nên xài, vì phải load thêm nó nữa vào bộ nhớ của Excel/VBA.
Nên dùng các interface có sẵn của shell32.dll. Vì shell32.dll luôn luôn đã được load vào bộ nhớ với các app của Offices
Shell.ShellExecute(File As String, [vArgs], [vDir], [vOperation], [vShow])
vâng anh, mà nó chạy được theo kiểu là mở và tạo 1 user mới ak a, chứ không phải theo user mình tạo sẵn, e cần là mở user e đã tạo sẵn và sử dụng selenium webdriver
 
Upvote 0
Cậu đọc kỹ lại post #13
 
Upvote 0
Cậu đọc kỹ lại post #13
dạ em xin lỗi.
lúc đầu e chỉ muốn mở file theo shortcut, sau đó e làm được rồi thì e nhận ra rẳng em không thể dùng tiếp selenium webdriver để xử lý những vấn đề tiếp theo. hi vọng a có thể giúp em mở từng shortcut và có thể dùng webdriver trong đó
 
Upvote 0
Chia "buồm" với bạn là tui không biết và không xài selenium webdriver bạn à. Bạn cố gắng tự mày mò tiếp đi.
 
Upvote 0
Web KT

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

Back
Top Bottom