Javascript 递归函数中的get元素
我正在尝试使用量角器从几个页面获取文本,但是递归似乎不起作用 这个想法是:Javascript 递归函数中的get元素,javascript,recursion,coffeescript,protractor,Javascript,Recursion,Coffeescript,Protractor,我正在尝试使用量角器从几个页面获取文本,但是递归似乎不起作用 这个想法是: 来自具有相同“名称”的元素的getText() 将文本推入数组 浏览器。等待推送完成,然后检查“下一页”按钮是否处于启用状态 如果启用,请转到下一页,然后再次调用该函数(继续将下一页中的文本推送到数组) 代码是(coffeescript): 结果打印: 这意味着它可以运行到第一个递归(即,转到下一页),但在获取第二页的文本时停止 我已经挠头两天了,但仍然不明白为什么递归不起作用 我不熟悉量角器。如果我能得到一些提示,那就
我不熟悉量角器。如果我能得到一些提示,那就太好了!!非常感谢。你能分享一下网站吗?我刚发现可能是超时的问题。当“下一页”顺利快速加载时,代码运行良好……(当我有更好的互联网和运气时!)我尝试增加超时时间,但结果显示“等待量角器在11秒后与页面同步超时”。我一直在抓取的网站是www.bigschedules.com.Good。那么你的问题解决了?或者你需要一些帮助?我想知道有没有更好的方法来处理超时问题?或者我只能增加超时限制?browser.wait(EC.elementToBeClickable(element,8000)。然后catch(函数(){assert.fail('element is not click able');});这里的元素可以是:nextPage或nextPageGo。你可以共享网站吗?我刚刚发现可能是超时问题。当“下一页”顺利快速加载时,代码工作正常……(当我有更好的互联网和运气时!)我尝试增加超时时间,但后来它出现了“等待量角器在11秒后与页面同步超时。”我一直在抓取的网站是www.bigschedules.com.Good。那么你的问题已经解决了?或者你需要一些帮助?我想知道有没有更好的方法来处理超时问题?或者我只能增加超时限制?浏览器。等待(EC.element)可选择(element,8000).thenCatch(函数(){assert.fail('element is not click able');});这里的元素可以是:nextPage或nextPage。
# define function getMyList
getMyList = (CL, CLTemp) ->
console.log "In function"
tabs = element.all(By.css "[name='some selector']").map((elm) -> elm.getText())
tabs.then((text) ->
CL.push text
return)
browser.wait(->
CL.length != CLTemp.length).then ->
console.log CL.length
nextPage = element(By.css "[title='Next Page']")
# hasClass is a function determining if the button is enabled or not
return hasClass("[title='Next Page']", 'disabled').then (class_found) ->
if class_found
console.log CL
return CL
else
console.log "Enabled"
CLTemp = CL
# scroll down to the button
browser.executeScript("arguments[0].scrollIntoView();", nextPage.getWebElement()).then ->
nextPageGo = element(By.css "[title='Next Page'] span[class=ng-binding]")
nextPageGo.click().then ->
getMyList (CL, CLTemp)
return
return
return
# Run the function. myList = [] and myListTemp = []
getMyList (myList, myListTemp)
In function
1
Enabled
In function