Nightwatch, javascript, shadowDOM;Как передать целое число из элемента, найденного через shadowroot? - PullRequest
0 голосов
/ 02 октября 2018

Hello StackOverflow community.

Я создал две функции, чтобы установить год в календаре (calendarYear) и использовать его для вычитания года из testData для перемещения по календарю.

Элемент в тени найден, и текст (год) превращается в целое число.Я возвращаю переменную calendarYear.

Вот мой код:

giveDateVopThroughCalendar: function (browser, ms, year, month) {
var calendar = browser.page.pensionplanner.agePensionWorkCalendar()
var calendarFunctions = browser.page.pensionplanner.agePensionWorkCalendarFunctions()

browser.execute('scrollTo(0,500)')
calendar.clickOpenCalendar(browser, ms) // this works!
console.log(year)
var calendarYear = calendarFunctions.determineCalendarYear(browser, ms)
console.log(calendarYear)
if (!calendarYear === year) {
  console.log('var i')
  var i = calendarYear - year
  switch (i) {
    case 'i > 0': while (i > 0) {
      calendar.clickCalendarPreviousYear(browser, ms)
      i = i--
      console.log('Year lowered by 1')
    }
      break
    case 'i < 0': while (i < 0) {
      calendar.clickCalendarNextYear(browser, ms)
      i = i++
      console.log('Year increased by 1')
    }
      break
    default: console.log('Correct year was already selected.')
  }
  calendarFunctions.clickOnGivenMonth(browser, ms, month) // this works!
}
},

determineCalendarYear: function (browser, ms) {
browser.waitForShadowRoot(`p-age-picker div p-calendar .year-title.style-scope.p-calendar`, ms, function (element) {
  browser.elementIdText(element, function (textResult) {
    var calendarYear = parseInt(textResult.value) // this works!
    console.log(`determine calendar year: ${calendarYear}`)
    return calendarYear
  })
})
}

Я хотел бы получить некоторую помощь, как я могу использовать calendarYear, определенный в функции shadowroot.До того, как я разделил их, функция shadowroot находилась в блоке кода файла giveDateVopThroughCalendar.Он получает правильное значение, но я не могу использовать его в операторе if (возвращает неопределенное значение).

Заранее спасибо!

...