PuppeteerSharp 获取选定的下拉列表

PuppeteerSharp Get Selected Dropdown

您好,感谢您花时间阅读本文。

我目前正在尝试从 BackMarket 抓取一堆产品,并且一直在尝试获取下拉 IE 的“选定”值:

<select id="id_wifi" name="wifi" class="form-control">
       <option value=""></option>                                                              
       <option selected="" value="Oui">Oui</option>                                 
       <option value="Non">Non</option>  
</select>

在这种情况下,我希望我的字符串存储“Oui”值。 所以我尝试了很多方法都没有成功,比如:

var content = await handle.EvaluateFunctionAsync<string>("option => option.value", handle);

但第一个选项返回空字符串,第二个选项返回空字符串。 我必须承认我真的不知道我在做什么。

如果有人能指出正确的方向,我将不胜感激

非常感谢。

编辑:

事实上,只是我的愚蠢错误让我浪费了很多时间,这个例子运行良好。我正在与之交互的产品刚刚选择了“”值。

examples in the docs 看来,您必须这样做:

// select the tag first
var element = await _page.QuerySelectorAsync("h1 > strong > a");

// then get the attribute
var url = await element.EvaluateFunctionAsync<string>("e => e.getAttribute('href')");
// OR
var url = await _page.EvaluateFunctionAsync<string>("e => e.getAttribute('href')", element);
// OR
var url = await (await element.GetPropertyAsync("href")).JsonValueAsync<string>();

// OR all in one
var url = await _page.EvaluateExpressionAsync<string>($"document.querySelector({"'h1 > strong > a'"}).getAttribute('href')");

当然,您必须将此应用于 select 选项的值。可能 'value' 而不是 'href' 和正确的 select 或。