你好,谢谢你抽出时间阅读这篇文章。
目前,我正试图从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);但是第一个选项是返回一个空字符串,第二个选项是返回null。我必须承认我真的不知道我想做什么。
如果有人能为我指明正确的方向,我将不胜感激。
非常感谢。
编辑:
事实上,这只是我愚蠢的错误,让我失去了很多时间,这个例子很好。我与之交互的产品刚刚选择了"“值。
发布于 2022-04-13 15:05:26
从文档中的示例上看,您似乎必须这样做:
// 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’和正确的选择器。
https://stackoverflow.com/questions/71858273
复制相似问题