Testing 使用TestCafe选择器,如何在select中验证所选项目的文本?

Testing 使用TestCafe选择器,如何在select中验证所选项目的文本?,testing,automation,automated-tests,e2e-testing,testcafe,Testing,Automation,Automated Tests,E2e Testing,Testcafe,我使用的是TestCafe 1.8.1,其案例与https://devexpress.github.io/testcafe/documentation/recipes/test-select-elements.html -我的问题是,示例假设的值及其文本内容将是相同的,在我的示例中,该值是一个非常不可预测的值 我可以在下拉列表中选择一个项目,使用.withTextvalue筛选选项,然后单击.item进行选择。但是,我的应用程序会刷新页面,并在加载时重新选择相关项目。这是不工作,我想测试它 因此

我使用的是TestCafe 1.8.1,其案例与https://devexpress.github.io/testcafe/documentation/recipes/test-select-elements.html -我的问题是,示例假设的值及其文本内容将是相同的,在我的示例中,该值是一个非常不可预测的值

我可以在下拉列表中选择一个项目,使用.withTextvalue筛选选项,然后单击.item进行选择。但是,我的应用程序会刷新页面,并在加载时重新选择相关项目。这是不工作,我想测试它

因此,我可能在“选择”菜单中有如下选项:

<select id="foo">
  <option value="1234">100x100</option>
  <option value="5432">200x100</option>
  <option value="9999">100x200</option>
</select>
显然,如果我使用.expectcitySelect.value.eql'London'进行测试;与文档中一样,它将失败,因为值与文本内容完全不同,例如,在下拉列表中单击“200x100”后,值将变为5432

我是否需要使用ClientFunction来获取所选项目的文本?我理解将数据传递到ClientFunction是非常尴尬的,我是否需要传递select的id,以便ClientFunction可以获取ElementByID来查找select并检索其所选选项的文本内容?这听起来都是错误的做法。

尝试使用

.expectcitySelect.innertext.eql'London'

尝试使用


.expectcitySelect.innertext.eql'London'

请检查以下使用ClientFunction API获取选项值的示例:

从“testcafe”导入{Selector,ClientFunction}; 固定装置`固定装置1` .第页`https://kys0l.csb.app/`; 测试“测试1”,异步t=>{ 常量选择器=选择器“选择”; const getValue=ClientFunctionindex=>{ 常量选择=选择器; 返回select.options[index].value; },{依赖项:{selector}}; 等待 .expectgetValue0.eql'1234' .expectgetValue1.eql'5432' .expectgetValue2.eql'9999'; };
另请参见:。

请检查以下使用ClientFunction API获取选项值的示例:

从“testcafe”导入{Selector,ClientFunction}; 固定装置`固定装置1` .第页`https://kys0l.csb.app/`; 测试“测试1”,异步t=>{ 常量选择器=选择器“选择”; const getValue=ClientFunctionindex=>{ 常量选择=选择器; 返回select.options[index].value; },{依赖项:{selector}}; 等待 .expectgetValue0.eql'1234' .expectgetValue1.eql'5432' .expectgetValue2.eql'9999'; };
另请参见:。

谢谢您的建议。。我发现在Chrome中,请求a的innerText会给出一个包含所有选项值的长字符串。在TestCafe测试中,wait dropdown.innerText似乎总是返回空字符串。使用console.log'test:'+wait citySelect.innerText+在docs测试中进行了实验验证;作为测试的最后一行,打印测试:嗯,奇怪。在我上面关于文档中的简单测试的实验中,我得到了空字符串,在我自己的测试中,我也看到了空字符串。现在我正在针对生产运行测试套件,我看到innerText给出了所有文本的长列表。不知道发生了什么事。。不过,这并不是我想要的价值:谢谢你的建议。。我发现在Chrome中,请求a的innerText会给出一个包含所有选项值的长字符串。在TestCafe测试中,wait dropdown.innerText似乎总是返回空字符串。使用console.log'test:'+wait citySelect.innerText+在docs测试中进行了实验验证;作为测试的最后一行,打印测试:嗯,奇怪。在我上面关于文档中的简单测试的实验中,我得到了空字符串,在我自己的测试中,我也看到了空字符串。现在我正在针对生产运行测试套件,我看到innerText给出了所有文本的长列表。不知道发生了什么事。。但是,这并不是我想要的价值:谢谢@aleks pro,这很有帮助。My ClientFunction可以将选择器作为其参数,因此:const getValue=ClientFunctionselector=>{const select=Selector;return select.options[select.selectedIndex].innerText;}。。然后在测试脚本中,const sel:Selector=Selector'selecttheselect'。。。让值=等待getValuesel;谢谢@aleks pro,这很有帮助。My ClientFunction可以将选择器作为其参数,因此:const getValue=ClientFunctionselector=>{const select=Selector;return select.options[select.selectedIndex].innerText;}。。然后在测试脚本中,const sel:Selector=Selector'selecttheselect'。。。让值=等待getValuesel;