我现在已经使用Protractor很长一段时间了,并且熟悉与Protractor,Webdriver,Jasmine等相关的一系列错误。最近,我遇到过一个我以前没见过的错误:
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:714
super(opt_msg);
^
RangeError: Maximum call stack size exceeded
虽然我之前看到过最大的调用堆栈错误,但它们通常与递归函数或可笑的大for
循环有关。
所以我对Protractor / Webdriver的意义有点迷失。根据我的理解,这是一个与浏览器相关的错误。但是我没有多少JavaScript直接进入浏览器(只是强行点击一些,并记录了一些对象)。
另外,我在运行我的整套测试(~500个规格)时只看到了这个错误,但每次都会发生不,并且它也不会出现在同一个地方我...这是一个片状错误。
有没有人对此错误有解释?
答案 0 :(得分:0)
发生let next = async function () {
await $nextButton.click();
await next(); // function calls itself here
}
错误的原因之一是当函数调用自身时。例如
library(shiny)
# 3 different dataframes/data for scatter plots
data1 <- data.frame(a <- c(20,30,35,45,50,60,80),
b <- c(60,70,72,77,82,88,90))
data2 <- data.frame(a <- c(20,30,35,45,50,60,80),
b <- c(60,70,68,77,82,88,70))
data3 <- data.frame(a <- c(35,40,38,50,52,51,30),
b <- c(60,70,72,64,82,88,90))
ui = fluidPage(
sidebarPanel(
sliderInput
(inputId = "fit", label = "estimated correlation",
min = 0, max = 1, value = 0),
actionButton("newplot", "next")),
mainPanel(plotOutput("plot")))
server = function(input, output) {
output$plot <- renderPlot({
input$newplot
plot(data1)
plot(data2)
plot(data3)
})
}
shinyApp(ui = ui, server = server)
这里发生的是代码陷入无限循环并引发错误
因此,只需检查一下代码,并确保不要在偶然的地方这样做