Нажмите случайную строку в кипарисе таблицы - PullRequest
0 голосов
/ 30 января 2019

У меня есть страница в моем приложении, которая показывает выдающиеся дефекты для пользователя.Я хочу, чтобы кипарис щелкнул мышью по одной из строк, и вы попадете на страницу с подробностями.

Я могу выбрать строки таблицы, используя

cy.get('[data-cy=faultsTable] tr').then(($tr)=>{

})

, это правильно дает мне 4 элементакак и ожидалось.Но я не могу понять, как случайным образом выбрать один из них, так как .then хочет выполнить каждый из них по очереди.

Я хочу

a) получить идентификатор дефекта от b) щелкните по строке.

Любые предложения будут с благодарностью приняты

1 Ответ

0 голосов
/ 31 января 2019

Возможно, есть лучший подход к этой проблеме, но ниже от моей мысли.Если количество defect Id записей меньше и является статическим, я имею в виду из таблицы, вы, вероятно, могли бы передать эти идентификаторы дефекта в массив и вернуть defect id случайным образом.

Опция: 1 У меня есть файл sample.js в папке /support, в который я добавил функцию randomDefectId.

module.exports ={
    randomDefectId: function(){
        var defect= ['10756', '10780', '19001', '21007', '25001', '27001'];
        var item = defect[Math.floor(Math.random()*defect.length)];
        return item;
    }

} 

Затем яимпортировать их в мою тестовую спецификацию

var rand = require('../../support/sample.js');

Ниже приведен мой тест, где я получаю rand.randomDefectId() в const ranNumber

 describe('Get the defect id', function(){
    it('Check whether the defect id', function(){
         const ranNumber = rand.getRandomNumber(); 
         cy.visit('/');         
         console.log("Some number:"+ranNumber );
          cy.get('#tableID>tbody>tr>td').contains(ranNumber).click()
          // rest of the test step continues here...

        })
    })

Опция:2 Но если внутри таблицы большой список defect id, вам нужен динамический способ получения идентификатора дефекта, я не пробовал приведенный ниже скрипт, но вы можете попробовать ...

randomDefectId: function(){
        let table = undefined;
        Cypress.$("#tableID>tbody>tr").each(function() {           
          var newArr = Cypress.$(this).find("td:last-child").html();          
          table = newArr;  
        });        
        return table;
    }

Если есть лучший способ добиться этого, я хотел бы узнать и поделиться

...