Nightwatch,javascript,shadowDOM;如何从通过shadowroot找到的元素中传递整数?

时间:2018-10-02 11:20:50

标签: javascript variables nightwatch.js shadow-dom

Hello StackOverflow社区。

我创建了两个函数,以在日历上设置年份(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
  })
})
}

我希望获得一些帮助,如何使用shadowroot函数中确定的calendarYear。在我分离它们之前,shadowroot函数位于'giveDateVopThroughCalendar'的代码块中。它确实获得了正确的值,但是我不能在if语句中使用它(返回未定义)。

提前谢谢!

0 个答案:

没有答案