无法 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);
});
下面是我的代码。我可以使用
从浏览器控制台的下拉菜单中访问和 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);
});