【发布时间】:2021-11-05 03:37:35
【问题描述】:
我有下面的 HTML 并试图从列表中选择,但它返回空数组。我该怎么办???
<div id="cdk-overlay-1" class="cdk-overlay-pane"> </div>
<div role="listbox" class="mat-autocomplete-panel" id="mat-autocomplete-1"> </div>
<mat-option role="option" class="mat-option mat-focus-indicator ng-star-inserted" id="mat-option-35">
</mat-option>
<mat-option role="option" class="mat-option mat-focus-indicator ng-star-inserted" id="mat-option-36"> </mat-option>
<mat-option role="option" class="mat-option mat-focus-indicator ng-star-inserted" id="mat-option-37"> </mat-option>
<mat-option role="option" class="mat-option mat-focus-indicator ng-star-inserted" id="mat-option-38"> </mat-option>
<mat-option role="option" class="mat-option mat-focus-indicator ng-star-inserted" id="mat-option-39"> </mat-option>
await page.click('input[placeholder="search"]')
await page.keyboard.type('e');
await page.keyboard.press('Enter');
const listbox = await page.$("div[role='listbox']")
const opt= await listbox?.$$("mat-option[role='option']");
const allUrls = await Promise.all(opt?.map(async (option, i) => {
return await option.innerText()
}))
console.log(opt);
【问题讨论】:
-
await是怎么回事?为什么你必须把它放在任何地方?这些操作应该是同步的,毫无疑问它不会起作用...opt返回的是什么?如果它是一个正确的元素列表,并且 ifoption.innerText()返回正确的数据(我对此表示怀疑),那么摆脱所有等待/异步!
标签: javascript typescript playwright