node JS 질문입니다 ㅠ

node JS 질문입니다 ㅠ

QA

node JS 질문입니다 ㅠ

답변 1

본문

현재 반복적으로 구동이 되는 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;
  }
}

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 95
© SIRSOFT
현재 페이지 제일 처음으로