Attribute VB_Name = "FetchAaStock" Function run(stock_num as integer) ' On Error GoTo eh Dim fetch_result(0 To 22) As String Dim driver As New ChromeDriver driver.SetBinary ChromiumBinaryPath driver.AddArgument "--disable-blink-features=AutomationControlled" driver.Start ' ' driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") ' ' driver.ExecuteScript "alert('helloworld')" driver.ExecuteScript "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})" ' ' driver.Get "http://localhost:8080/navigator_webdriver_test.html" ' ' https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html ' driver.Get "https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html" ' driver.ExecuteScript "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})" driver.Get "http://www.aastocks.com" ' driver.ExecuteScript "console.log('hello excel')" driver.ExecuteScript "document.querySelector('#sb-txtSymbol-aa').value = '"& stock_num &"'" driver.ExecuteScript "document.querySelector('#sb-btnSubmit').click()" driver.ExecuteScript "document.querySelectorAll('span.float_l')[6].click()" Debug.Print driver.ExecuteScript("{ return 'helloworld from chrome' }") ' stock_Name # Name fetch_result(IDX_STOCK_NAME)= driver.ExecuteScript("{ return document.querySelector('#SQ_Name').textContent.trim() }") ' stock_Price # Price fetch_result(IDX_STOCK_PRICE)= driver.ExecuteScript("{ return document.querySelector('#labelLast').textContent.trim() }") ' 10_day_Moving_Average # 10???? fetch_result(IDX_10_DAY_MOVING_AVERAGE)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel.dq-panel')[1].querySelectorAll('tr')[1].querySelectorAll('td')[1].textContent.trim() }") ' 20_day_Moving_Average # 20???? fetch_result(IDX_20_DAY_MOVING_AVERAGE)= "20_day_Moving_Average missing" ' 50_day_Moving_Average # 50???? fetch_result(IDX_50_DAY_MOVING_AVERAGE)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel.dq-panel')[1].querySelectorAll('tr')[2].querySelectorAll('td')[1].textContent.trim() }") ' 100_day_Moving_Average # 100???? fetch_result(IDX_100_DAY_MOVING_AVERAGE)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel.dq-panel')[1].querySelectorAll('tr')[3].querySelectorAll('td')[1].textContent.trim() }") ' 250_day_Moving_Average # 250???? fetch_result(IDX_250_DAY_MOVING_AVERAGE)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel.dq-panel')[1].querySelectorAll('tr')[4].querySelectorAll('td')[1].textContent.trim() }") ' P_E_Ratio_Expected # ???/?? fetch_result(IDX_P_E_RATIO_EXPECTED)= driver.ExecuteScript("{ return document.querySelectorAll('#tbPERatio div')[5].textContent.trim() }") ' Earnings_per_Share # ?????? fetch_result(IDX_EARNINGS_PER_SHARE)= "earnings_per_share is missing" ' Yield # ??? fetch_result(IDX_YIELD)= driver.ExecuteScript("{ return document.querySelectorAll('.quote-box div')[19].textContent.trim() }") ' Fund_Flow # ???? fetch_result(IDX_FUND_FLOW)= driver.ExecuteScript("{ return document.querySelectorAll('.quote-box div')[29].textContent.trim() }") ' Short_Selling_Amount_Ratio_% # ???_??(%) fetch_result(IDX_SHORT_SELLING_AMOUNT_RATIO_)= driver.ExecuteScript("{ return document.querySelectorAll('.quote-box div')[4].textContent.trim() }") ' RSI_10 # RSI 10 fetch_result(IDX_RSI_10)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[0].querySelector('.txt_r').textContent.trim() }") ' RSI_14 # RSI 14 fetch_result(IDX_RSI_14)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[0].querySelector('.txt_r').textContent.trim() }") ' RSI_20 # RSI 20 fetch_result(IDX_RSI_20)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[1].querySelector('.txt_r').textContent.trim() }") ' MACD_8_17_days # MACD(8_17 ?) fetch_result(IDX_MACD_8_17_DAYS)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[2].querySelector('.txt_r').textContent.trim() }") ' MACD_12_25_days # MACD(12/25 ?) fetch_result(IDX_MACD_12_25_DAYS)= driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[3].querySelector('.txt_r').textContent.trim() }") ' Application.Wait Now + TimeValue("00:30:01") driver.Quit run = fetch_result Done: ' Debug.Print "hello done" Exit Function eh: Debug.Print "hello error" End Function