Как использовать 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();

0 ответов

Другие вопросы по тегам