PupeteerSharp - Как определить тип элемента - PullRequest
0 голосов
/ 08 апреля 2019

Я вытягиваю список элементов ввода со страницы и хотел бы определить «тип» каждого из них.

Например:

    var elements = await page.QuerySelectorAllAsync("input");
    if (elements != null)
    {
        foreach (var element in elements)
        {
            if (element.GetType().ToString() == "password")
            {
                await element.TypeAsync("password");
            }
        }
    }

Однако GetType не верен. Есть ли способ определить тип ввода из элемента?

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Вам нужно проверить это на стороне Chromium:

var elements = await page.QuerySelectorAllAsync("input");
if (elements != null)
{
    foreach (var element in elements)
    {
        if ((await page.EvaluateFunctionAsync<string>("e => e.type", element)) == "password")
        {
            await element.TypeAsync("password");
        }
    }
}
0 голосов
/ 08 апреля 2019

Обнаружил, что это работает:

                    var type = await currentElement.GetPropertyAsync("type");
                    if (type.ToString() == "JSHandle:password")
                    {
                        await currentElement.TypeAsync("password");
...
...