我正在从页面中提取输入元素列表,并想确定每个元素的“类型”。
例如:
var elements = await page.QuerySelectorAllAsync("input");
if (elements != null)
{
foreach (var element in elements)
{
if (element.GetType().ToString() == "password")
{
await element.TypeAsync("password");
}
}
}
但是,GetType不正确。有没有一种方法可以根据元素确定输入类型?
答案 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");
...