在网站https://www.testandquiz.com/selenium/testing.html中,这里有一个下拉列表 enter image description here
html如下:
<select id="testingDropdown">
<option id="automation" value="Automation">Automation Testing</option>
<option id="performance" value="Performance">Performance Testing</option>
<option id="manual" value="Manual">Manual Testing</option>
<option id="database" value="Database">Database Testing</option>
</select>
我想:
如何处理使用柏树?
我尝试了以下方法,但测试失败
describe('Cypress.io tests', function() {
it('Open cypress.io page', function() {
var cypressPage = 'https://www.testandquiz.com/selenium/testing.html'
cy.visit(cypressPage)
cy.xpath("//[@id='testingDropdown']").click();
})
})
答案 0 :(得分:0)
为什么不使用.get()到达元素? 使用.children(),您可以在下拉列表中获取元素的数量。
cy.get('#testingDropdown').children()
还是您希望将其作为变量?
答案 1 :(得分:0)
聚会有点晚了。
赛普拉斯不允许您对选择元素使用 click()。您将需要为此使用选择功能。 您还需要两个 xpath:
这是工作代码
describe('Cypress.io tests', function() {
it('Open cypress.io page', function() {
var cypressPage = 'https://www.testandquiz.com/selenium/testing.html';
cy.visit(cypressPage);
// Get the array of options
cy.xpath('//*[@id="testingDropdown"]//option').then(($elements) => {
const randomOption = Math.floor(Math.random() * $elements.length);
// select option from drop down
cy.xpath('//*[@id="testingDropdown"]').select(`${$elements[randomOption].innerText}`);
cy.log(`random option selected is ${$elements[randomOption].innerText}}`);
})
})