4

我正在使用 Playwright 的 C# 语言绑定。

示例 HTML:

<select id="txtType" name="Type" class="form-control">
        <option>Blog Posts</option>
        <option>Books</option>
        <option>Presentations</option>
        <option>Videos</option>
        <option>Podcasts</option>
        <option>Examples</option>
</select>

我知道我可以Page.SelectOptionAsync用来设置下拉列表的选定选项,但是如何获取当前选定的选项?

当我查看 DropDown 的所有属性时,我看不出ElementHandles.

4

2 回答 2

2

您可以使用EvalOnSelectorAsync,传递一个 CSS 选择器,以及期望该元素并返回该元素值的函数:

await page.EvalOnSelectorAsync<string>("#txtType", "el => el.value")
于 2021-02-11T15:10:19.010 回答
1
<select id="element_id">
  <option value="1">Option 1</option>
  <option value="2" selected>Option 2</option>
<select>

对于 NodeJS 剧作家

value要从下拉列表中获取选定的选项(2):

await page.$eval('#element_id', sel => sel.value)

text要从下拉列表中获取选定的选项(“选项 2”):

await page.$eval('#element_id', sel => sel.options[sel.options.selectedIndex].textContent)

对于 C#,只需将第二个参数用引号括起来:

await page.EvalOnSelectorAsync<string>("#element_id", "sel => sel.value")
await page.EvalOnSelectorAsync<string>("#element_id", "sel => sel.options[sel.options.selectedIndex].textContent")
于 2021-09-11T10:31:05.117 回答