Как использовать selenium webdriver chromedriver, как мне подождать, пока данные будут записаны на консоль, прежде чем получать их?
Я пытаюсь захватить данные в консоли. На тестовой веб-странице в Chrome, когда текст вводится в элемент ввода и нажимается кнопка, текст в элементе ввода записывается в консоль. Это прекрасно работает, когда вы делаете это вручную.
Я пытаюсь перехватить вывод на консоль с помощью селена webdriver и chromedriver, но пока безуспешно. Теперь я считаю, что проблема в том, что я пытаюсь получить данные с консоли до того, как они будут записаны на консоль. Как я могу проверить, были ли данные записаны в консоль, прежде чем их получить? Я полагаю, я мог бы поставить таймер, чтобы продолжить проверку, но есть ли более элегантный способ?
const webdriver = require('selenium-webdriver');
const chromeDriver = require('selenium-webdriver/chrome');
const logging = require('selenium-webdriver').logging;
const path = require('chromeDriver').path;
const service = new chromeDriver.ServiceBuilder(path).build();
chromeDriver.setDefaultService(service);
const { By, until, Capabilities, logging } = webdriver;
webdriver.promise.USE_PROMISE_MANAGER = false;
const CHROME_BIN_PATH = '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome';
const prefs = new logging.Preferences();
prefs.setLevel(logging.Type.BROWSER, logging.Level.ALL);
const options = new chromeDriver.Options();
options.setChromeBinaryPath(CHROME_BIN_PATH);
options.addArguments(
'headless',
'disable-gpu',
'verbose',
);
const main = async () => {
try{
const driver = await new webdriver.Builder()
.withCapabilities(caps)
.forBrowser('chrome')
.setLoggingPrefs(prefs)
.setChromeOptions(options)
.build();
await driver.get('http://example.com/sample.html');
await driver.findElement(By.name('name2')).sendKeys('webdriver');
await driver.findElement(By.name('button2')).click();
await driver.manage().logs().get(logging.Type.BROWSER).then(function(entries) {
console.log(entries);
});
await driver.quit();
} catch (error) {
console.log(error);
}
};
main();