无法 select 使用 Testcafe 中的索引从下拉列表中获取值

Not able to select a value from drop down using Index in Testcafe

下面是我的代码。我可以使用

从浏览器控制台的下拉菜单中访问和 select 项目
  '''document.querySelector('#__next > div > main > div.Home_toolbar__JY_RL > 
  div.Home_deviceControls__nQw4V > select:nth-child(2)').selectedIndex = 3'''

但是从下面的代码在 testcafe 中进行测试 -

''test('Select each available Audio input device', async (browser) => {
await browser.wait(6000);
let audioDevices = Selector('#__next > div > main > 
div.Home_toolbar__JY_RL > div.Home_deviceControls__nQw4V > 
select:nth-child(2)'
).selectedIndex = 3
await browser.expect(audioDevicescount.selectedIndex).eql(3);
});'''

下面是我得到的错误-

TypeError: 无法设置 属性 selectedIndex 函数 __$$clientFunction$$() { const testRun = builder._getTestRun(); const callsite ...... } 只有一个 getter

我尝试使用客户端函数,但无法传递 selectedIndex 值。

您不能使用选择器设置'selectedIndex' 属性,因为选择器是为元素查询而创建的。要在客户端修改元素状态,请使用 ClientFunctions 机制。 我创建了一个示例来演示如何使用 ClientFunction 设置 selectedIndex。请看下面的代码:

<select>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>
import { Selector, ClientFunction } from 'testcafe';

fixture `f`
    .page `index.html`;

const select = Selector('select');

const setSelectedIndex = ClientFunction(index => {
    select().selectedIndex = index;
}, { dependencies: { select } });

test(`t`, async t => {
    await setSelectedIndex(2);

    await t.expect(select.selectedIndex).eql(2);
});