запросить пользовательский ввод для селена - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь автоматизировать свой рабочий процесс, используя селен в nodejs. При доступе на sellercentral.amazon.com он отправляет код OTP на мой телефон. Как я могу запросить приглашение в nodejs, чтобы я мог ввести код?

Я пытался использовать readline-sync, но приглашение всегда отображается даже до запуска селен.

const webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;

const driver = new webdriver.Builder()
    .forBrowser('firefox')
    // .setFirefoxOptions(options)
    .build();

//Main body
driver.get('https://sellercentral.amazon.com');
driver.wait(until.elementLocated(By.id('sign-in-button')));
driver.findElement(By.id('sign-in-button')).click();

const fillForm = (idToLook, keys) => {
    this.idToLook = idToLook;
    if (keys) {
        driver.wait(until.elementLocated(By.id(idToLook)));
        driver.findElement(By.id(idToLook)).sendKeys(keys);
    }
    else {
        keys = readline.question(`what are the keys for ${this.idToLook}: `);
        driver.findElement(By.id(idToLook)).sendKeys(keys);
    }
}

fillForm('ap_email', amazon.id);
fillForm('ap_password', amazon.password);
driver.findElement(By.name('rememberMe')).click();
driver.findElement(By.id('a-autoid-0')).click();
driver.wait(until.elementIsNotVisible(By.id('auth-mfa-optcode')));

// fillForm('auth-mfa-otpcode');

driver.findElement(By.id('auth-mfa-remember-device')).click();


driver.quit();

1 Ответ

0 голосов
/ 20 октября 2019

Вы можете попробовать что-то похожим образом. Оберните initializeSite, чтобы запустить сайт в качестве Обещания.

Базовый скрипт, подобный приведенному ниже:




function main() {

    var initializeSite = initialize();

    initializeSite.then(function(result) {





        // Do your different actions to bring up the form that need OTP

       readline.question (“Add OTP”, (otp) =>{

       // Add rest of your codes here
      }

        console.log(“success”)

    }, function(err) {

        console.log(err);

    })

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...