【发布时间】:2019-10-20 15:14:13
【问题描述】:
我正在尝试在 nodejs 中使用 selenium 来自动化我的工作流程。访问 Sellercentral.amazon.com 时,它会向我的手机发送一个 OTP 代码。如何在 nodejs 上要求提示以便输入代码?
我尝试过使用 readline-sync,但提示总是在 selenium 启动之前显示。
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();
【问题讨论】:
标签: javascript selenium