ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¦p¦ó¥ÎEXCEL VBA¦bCHROME¿é¤J¸ê®Æ¦A«ö¤U¬d¸ß¡H

¥»©«³Ì«á¥Ñ singo1232001 ©ó 2022-7-9 16:40 ½s¿è

¦^´_ 1# smart3135


https://github.com/florentbr/SeleniumBasic/releases
¤U¸ü
SeleniumBasic-2.0.9.0.exe

§ó·schromeª©¥»
chrome>»¡©ú>Ãö©ógoogle chrome

¤â°Ê²Ä¤@¦¸§ó·schromedriverª©¥»
https://chromedriver.chromium.org/
¦ì¸mC:\Users\xxx\AppData\Local\SeleniumBasic\

¦w¸Ë¨Ã§ó·s«á ²Ä¤@¦¸´ú¸Õ
¶}©l>selenium Basic>Start Chome>¸õ¿ù>¦Û°Ê¦w¸Ë.net fromework>­«¶}¾÷

²Ä¤G¦¸´ú¸Õ
¶}©l>selenium Basic>Start Chome>click ok to quit




«á´Á¤Þ¥Î¼gªk(ÁקK´«¹q¸£ÁÙ­n­«³])
set driver = CreateObject("Selenium.ChromeDriver")

¾Þ§@¾Ç²ß°Ñ¦Òºô§}
https://club.excelhome.net/thread-1452021-1-1.html









¦Û°Ê§ó·schromedriver  vba¥N½X(³q±`¤@­Ó¤ë¥ª¥kgoogle·|§ó·sÂsÄý¾¹¤@¦¸)
Sub seleniumOPEN()

'§Q¥Îerror¤è¦¡§PÂ_selenium¬O§_²§±` ­Y¦³²§±`err´N¤£¬O0  ´N·|¶i¤J updataSelenium ªºµ{§Ç§ì¨ú·sªºchromedriveª©¥»
Do
    On Error GoTo 0
    On Error Resume Next
    Set driver = CreateObject("Selenium.ChromeDriver")
    Err = 0
    driver.Get "https://www.google.com.tw"   '¤@©w­n¥[https:// ¤£µM·|¥X²{¯«©_ªº²§±`²{¶H
    If Err <> 0 Then
            driver.Quit
            Set driver = Nothing
            Call updataSelenium
    End If
Loop Until Err = 0

msgbox "§¹¦¨"
End Sub


Sub updataSelenium()
'¥ý§PÂ_chromedriver¦b­þ­Ó¸ê®Æ§¨
path1 = "C:\Users\" & Environ$("username") & "\AppData\Local\SeleniumBasic\Chromedriver.exe"
path2 = "C:\Program Files\SeleniumBasic\Chromedriver.exe"
If Dir(path1) <> "" Then TempDrvFile = path1
    'Kill (TempDrvFile)  '°²¦p¦b¿ù»~ªº±¡ªp¤U §ä¨ì¤FÀÉ®× ¨º¤§«á±N­n§ó·s½Æ»sÂл\ ÁקK¸õ¥X½Æ»s¤w¦s¦b¿ù»~ĵ§i ©Ò¥H¥ý§R°£±¼
If Dir(path2) <> "" Then TempDrvFile = path2

'§PÂ_chromeªºª©¥»¸¹
Set objHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")  'Get chrome version
chrversion = CreateObject("WScript.Shell").RegRead("HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon\version")
dotsarr = Split(chrversion, ".")
leftchrver = dotsarr(0) & dotsarr(1)

'§PÂ_chromedriverª©¥»¸¹
Set oShell = CreateObject("wscript.shell")
errcode = oShell.Exec(path1 & " --version").StdOut.ReadAll
verarr = Split(errcode, " ")
chrdrv = verarr(1)
dotsarr2 = Split(chrdrv, ".")
leftchrdrv = dotsarr2(0) & dotsarr2(1)
If leftchrver = leftchrdrv Then Exit Sub '§Q¥Îª©¥»¸¹ªº«e¨â¦ì§PÂ_¬O§_¦Pª©¥»


'§Q¥Îª©¥»¸¹²Ä¤@¦ì ¤W©xºô¬d¸ß ·í«eª©¥»ªº³Ì²×ª©¥»¸¹
URL = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_" & dotsarr(0)
Call objHttp.Open("GET", URL, False)
Call objHttp.Send("")
version_number = objHttp.responseText
dotsarr3 = Split(version_number, ".")
leftversion_no = dotsarr3(0) & dotsarr3(1)
download_url = "https://chromedriver.storage.googleapis.com/" + version_number + "/chromedriver_win32.zip"
   
    '§Q¥Î¨ú±oªºª©¥»¸¹ ¨ú±o¤U¸üºô§} ¨Ã¶}±Òchromedriver.zip¤U¸ü­¶­±
    Call objHttp.Open("GET", download_url, False)
    Call objHttp.Send("")
        
        '¶}±Òadodb±µ¦¬¤U¸üÀ£ÁYÀÉ ¨Ã©ñ¤Jseleniumªº¸ê®Æ§¨
        Set fileStream = CreateObject("ADODB.Stream")
        With fileStream
            .Open
            .Type = 1 'adTypeBinary
            .Write objHttp.responseBody
            .Position = 0
            .SaveToFile "C:\Users\" & Environ$("username") & "\AppData\Local\SeleniumBasic\chromedriver.zip", 2  'adSaveCreateOverWrite 'adSaveCreateOverWrite
            .Close
        End With
        
        '¸ÑÀ£ÁY ·|¥ý±Nª©ªº§R°£ ¤~¸ÑÀ£ÁY
        Set oApp = CreateObject("Shell.Application")
        If Dir(path1) <> "" Then Kill path1
        oApp.Namespace("C:\Users\" & Environ$("username") & "\AppData\Local\SeleniumBasic\").CopyHere _
            oApp.Namespace("C:\Users\" & Environ$("username") & "\AppData\Local\SeleniumBasic\chromedriver.zip").Items


'¥þ³¡§¹¦¨«á ·|¦^¨ì¤W¤@­Ósub ¨Ã­«·s§PÂ_¬O§_ª©¥»¿ù»~
End Sub

TOP

¥»©«³Ì«á¥Ñ singo1232001 ©ó 2022-7-9 18:09 ½s¿è

¦^´_ 1# smart3135


»Ý­nªþ¤W ¨º¨â­Ó¤¸¥óªº¬ÛÃö¸ê°T  ¨Ò¦pID  class  tagname   
     
­n¦bÂsÄý¾¹«öF12  ¨Ã¦b·Q¬dªº¤¸¥ó¤W­±         ¥kÁä  >Àˬd (­«½Æ2¦¸)

¤×¨ä¬O¬Y¨Ç¤º³¡ºô­¶Âîج[ ´Nºâ¤W­z §A¦³µ¹

¤]¥i¯à¦]¬°iframe¤£¦P®Ø¬[ µLªk¥Î  ¦ý¥i¥H¥ý¸Õ¸Õ

¥t¥~¸É¥R ¦³ID²³æ¤@ÂI
¨SID ´N­n¶¶µÛ ¯ª®]¶¥¼h ®i¶}¥þ§ì

TOP

¦^´_ 5# smart3135


    ¦b¤¸¥ó¤W Àˬd¨â¦¸ ¤~·|¥þ®i¶}

    ²Ä¤@¦¸¥u·|¿ï¾Ü¨ì¤¸¥óªº¤W¼h©ÎªÌ®Ø¬[
    ²Ä¤G¦¸¤~·|¦Û°Ê¸õ¨ì¤¸¥ó¥»¨­

TOP

¥»©«³Ì«á¥Ñ singo1232001 ©ó 2022-7-11 03:58 ½s¿è

¦^´_ 7# smart3135


¨ä¹ê¥i¥H¤£¥Î«öF12

(¥kÁä>Àˬd)°µ¨â¦¸    ¤£¬O¥kÃ䪺¬õ®Ø,¦Ó¬O¥ªÃ䪺Åã¥Üµe­±¤Wª½±µ¾Þ§@

¤¤¤åª©ªº¬O"Àˬd"  ­^¤åª©ªº§Ú§Ñ¤F




­Yµe­±¦³«ÊÂê  ´N­n¥ýF12 µM«á¥kÃ䪺µ{¦¡½X  ¥Î·Æ¹«¤W¤U²¾°Ê  ¬Ý¥ªÃäµe­±­þ¸Ì³Q®Ø°_¨Ó ´N¯à³vº¥§ä¨ì

©ÎªÌ¦w¸Ëgoogle chrome°Ó©±ªº Selenium IDE ÂX¥R¥\¯à ¨Ó§ì(¹J¨ìÂëܲ`ªº¤~»Ý­n)

¤ñ¦p§A»¡ªº¨º­Ó·j´MÄæ´N¬O
chrome.FindElementById("header-search-input").clear
chrome.FindElementById("header-search-input").sendkey "ÃöÁä¦r"
ÂIÀ»¬d¸ß«ö¶s
chrome.FindElementById("header-desktop-search-button").click





1.¥t¥~«Øij ¦b½s¼g¹Lµ{ ¤d¸U¤£­n¥Îwith ªº¼gªk ³o·|³y¦¨§A´ú¸Õ³Â·Ð
2.ID³q±`¥u¦³1­Ó ©Ò¥H«Ü¦n¤Ö
3.«DIDªº¤¸¥ó ³q±`¤£¥u1­Ó  ´N¥i¥H+s
¨Ò¦p:
set tag1 = chrome.FindElementByTag("input")   ³o­¶­±¦Ü¤Ö¶W¹L10­Ó¥H¤W
´N¸Ó§ï¦¨
set tag1 = chrome.FindElementsByTag("input")

³o¼Ë´N¯à¦b¤§«á§â©Ò¦³ªºinput ³£©ñ¤J tag1 ¤º ¨Ã¹³°}¦Cª«¥ó¤@¼Ë ·|¦Û°Ê½s¸¹

¤§«á´N¥i¥H³æ¿W¿ï¾Ü
tag1(0)
tag1(1)
.
.
.
.
.
tag1(tag1.count) ¤ºªºªF¦è¤F





¸É¥R
­n¤£­nset ´N¬Ý§A¤§«áÁÙ­n¤£­nÄ~Äò¥Î
¦p¤W­z¨Ò¤l
chrome.FindElementById("header-search-input").clear
chrome.FindElementById("header-search-input").sendkey "ÃöÁä¦r"
·í¤Usendkey ©ÎªÌclick ´N¨S¥²­nÃB¥~set
·íµM ¤]¥i¥H
set id1 = chrome.FindElementById("header-search-input")
id1.clear
id1.sendkey "ÃöÁä¦r"

TOP

¥»©«³Ì«á¥Ñ singo1232001 ©ó 2022-7-12 16:29 ½s¿è

¦^´_ 10# smart3135



1.§A³o­Ó¦³frame
https://club.excelhome.net/thread-1452021-3-1.html
°Ñ¦Ò30¼Ó ¦A¤£¦æ ª½±µgoogle ¥Î¯Â­^¤å §ä¬Ý¬Ý¦³¨S¦³½d¨Ò


2.¨S¿ìªk ¥u¯à¦h¦¸§Q¥Î set tag1 = chrome.findelementsbytag("xxx")(0)   ¤@¼h¤@¼hºCºC©¹¤UÃä´úÃä§ä
xxx ´N¬O³Ì«e­±<> ¤¤ªºµµ¦â¤å¦r  ¨Ò¦p center form table tbody tr td input
(0) ¬Ýª«¥ó²Õ¤ºªº²Ä´X­Ó¬O§A­nªº ¥i¥H¥Î°j°é ©ÎªÌ.text ©Î.value ¨Ódebug.print ½T»{¬O¤£¬O§A­nªº¸Ó¤¸¥ó

Ãä§ä¤]¥i¥HÃB¥~ §Q¥Î   °j°é + instr + .attribute  ªº¤è¦¡¼Ò½k·j¯Á

TOP

        ÀR«ä¦Û¦b : ¦³®É·í«äµL®É­W¡A¦n¤Ñ­n¿n«B¨Ó³¡C
ªð¦^¦Cªí ¤W¤@¥DÃD