PupeteerSharp-如何确定元素类型

时间:2019-04-08 19:23:22

标签: puppeteer-sharp

我正在从页面中提取输入元素列表,并想确定每个元素的“类型”。

例如:

    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 个答案:

答案 0 :(得分:1)

您需要在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");
        }
    }
}

答案 1 :(得分:0)

发现这可行:

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