728x90
반응형
1. 이제 어느정도 세팅했으니 selenium 을 사용해보자. 먼저 설치한다.
$ npm install --save @types/selenium-webdriver selenium-webdriver
2. 크롬드라이버의 위치를 .env 파일에 추가해준다. ( 환경 변수 설정 )
/.env
CHROMEDRIVER_PATH="C:\\Users\\Administrator\\Downloads\\chromedriver_win32\\chromedriver.exe"
3. one.ts 라우터 파일에 다음과 같이 현재 주소를 가져오는 로직을 구성해준다.
/routers/one.ts
import express, { Request, Response, NextFunction } from 'express';
var router = express.Router();
// middlewares
import { httpLoggingMiddleware } from '../middlewares'
// logger
import {
loggerHttp,
loggerDebug,
loggerError,
loggerInfo
} from '../config/winston';
// selenium
import webdriver from 'selenium-webdriver'
import chrome from 'selenium-webdriver/chrome'
router.get('/',httpLoggingMiddleware, async function (req: Request, res: Response, next: NextFunction) {
try {
// 웹드라이버 설정
let driver = await new webdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(new chrome.Options().windowSize({width: 1920, height: 1080}))
.setChromeService(new chrome.ServiceBuilder(process.env.CHROMEDRIVER_PATH))
.build()
// 브라우저에 접속
await driver.get('https://typo.tistory.com/')
// 현재 주소 가져오기
const text = await driver.getCurrentUrl();
// 현재 주소 출력
console.log(text)
res.send({success: true, result : text});
}
catch(Err) {
logger.error(JSON.stringify(Err))
console.log(Err)
res.send({success: false, result : Err})
}
});
export default router;
4. 서버를 실행하고 localhost:1234/one 로 접속한다.
정상적으로 뜨는 것을 확인할 수 있다.
728x90
반응형