node JS 질문입니다 ㅠ
본문
현재 반복적으로 구동이 되는 node인데
새창열림이 아니라 새탭으로 열리려면 혹시 바꿔야할 부분이 있을까요..?
조언이나..관련링크..부탁드립니다.
let flag = true;
(async () => {
for (var i = 0; i < browser_count; i++) {
if (flag) {
var options = new chrome.Options();
options.setUserPreferences({ 'profile.default_content_setting_values.notifications': 2 });
let driver = await new Builder('./chromedriver').forBrowser('chrome').withCapabilities(options).build();
await driver.get('https://www.naver.com');
await driver.wait(until.elementLocated(By.css('#footer')));
//메인 브라우저 값 저장
const defaultHandle = await driver.getWindowHandle();
//로그인
await Nlogin(driver, uid, upw);
//console.log('기본 핸들 저장 완료');
setTimeout(async () => {
while (flag) {
flag = await Samlip(driver);
}
});
}
}
})()
const Nlogin = async (driver, nid, npw) => {
//로그인
const loginBtn = await driver.findElement(By.css(`a.link_login`));
await loginBtn.click();
//console.log('로그인 화면 전환 완료');
//대기 (아이디 비번)
await driver.wait(until.elementLocated(By.css('#id')));
await driver.wait(until.elementLocated(By.css('#pw')));
//아이디 비번 입력
await driver.executeScript(`
document.querySelector('#id').value = '${nid}';
document.querySelector('#pw').value = '${npw}';
`);
//대기 (로그인 버튼)
await driver.wait(until.elementLocated(By.css('.btn_login')));
//console.log('아이디 비번 입력 완료');
//로그인 버튼 클릭
const loginSubmit = await driver.findElement(By.css(`.btn_login`));
await loginSubmit.click();
//console.log('로그인 버튼 클릭 완료');
}
const Samlip = async (driver) => {
await driver.get(buy_link);
// 구매버튼을
try {
//await driver.wait(until.elementLocated(By.css('#footer')));
await driver.sleep(150)
//await driver.findElement(By.className('N=a:pcs.buy'));
///console.log('tttt');
const buybtn = await driver.findElement(By.className('N=a:pcs.buy'));
await buybtn.click();
try {
// alert 창이 있는 경우 500ms 간격으로 안뜰때까지 반복
while (true) {
await driver.sleep(500);
var alert = await driver.switchTo().alert()
await alert.accept();
await buybtn.click();
}
} catch (err) {
}
await driver.wait(until.elementLocated(By.className('order_header')));
const paybtn = await driver.findElement(By.className('btn_payment'));
await paybtn.click();
return false;
} catch (e) {
//console.log(e.message);
return true;
}
}
답변을 작성하시기 전에 로그인 해주세요.