I am trying to create a tool that enters assessment marks into a system. I currently have it working but the code is very repetitive. I have a JSON file with the student's marks. I then loop through the length of the data and enter the values into the respective inputs. Once I have finished, I submit and go to the next assessment. How can I reduce the amount of duplication?
const data = require('data.json')
module.exports = {
'@tags': ['Assessment'],
'Enter data for each page'(browser) {
const courseActionLink =
'#DataModel_DataLinks_YourAssessments__Data_1__Items_READYTOMARK__Value'
const submitBtn = '[aria-label="Submit Results"]'
const nextAssessmentBtn = '[aria-label="Next Assessment"]'
const alertBtn = '#alert-close'
for (let d = 0; d < data.length; d++) {
// Mark Assessment Results
const personCode = `#DataModel_DataLinks_LearnerAssessments__Data_${d}__Items_RESULT_MARKSOUTOF__Value`
browser
.clearValue(personCode)
.setValue(personCode, data[d].a1total)
.pause(5000)
}
browser
.click(submitBtn)
.pause(5000)
.click(alertBtn)
.pause(5000)
.click(nextAssessmentBtn)
.pause(5000)
for (let d = 0; d < data.length; d++) {
// Mark Assessment Results
const personCode = `#DataModel_DataLinks_LearnerAssessments__Data_${d}__Items_RESULT_MARKSOUTOF__Value`
browser
.clearValue(personCode)
.setValue(personCode, data[d].sbatotal)
.pause(5000)
}
browser
.click(submitBtn)
.pause(5000)
.click(alertBtn)
.pause(5000)
.click(nextAssessmentBtn)
.pause(5000)
for (let d = 0; d < data.length; d++) {
// Mark Assessment Results
const personCode = `#DataModel_DataLinks_LearnerAssessments__Data_${d}__Items_RESULT_MARKSOUTOF__Value`
browser
.clearValue(personCode)
.setValue(personCode, data[d].practicalstotal)
.pause(5000)
}
browser
.click(submitBtn)
.pause(5000)
.click(alertBtn)
.pause(5000)
.click(nextAssessmentBtn)
.pause(5000)
for (let d = 0; d < data.length; d++) {
// Mark Assessment Results
const personCode = `#DataModel_DataLinks_LearnerAssessments__Data_${d}__Items_RESULT_MARKSOUTOF__Value`
browser
.clearValue(personCode)
.setValue(personCode, data[d].a2total)
.pause(5000)
}
browser
.click(submitBtn)
.pause(5000)
.click(alertBtn)
.pause(5000)
}
}