gpt4 book ai didi

karate - 如何在另一个特征文件的javascript函数中调用我的特征文件函数?

转载 作者:行者123 更新时间:2023-12-04 09:11:39 27 4
gpt4 key购买 nike

所以我创建了一个看起来像这样的滚动功能

Feature: Dynamic page scrolling
Scenario: Scrolling function
* def ScrollHeight = function(){return script("document.body.scrollHeight")
* def ScrollFunction = function(){ script("window.scrollTo(0,document.body.scrollHeight)")
* def ScrollingFunction =
"""
function(){
var height = ScrollHeight()
while(true)
{ ScrollFunction()
var newHeight = ScrollHeight()
if(height === newHeight )
break;
height = newHeight
}
}
"""
所以我在我有我的测试场景的同一个功能文件中创建了它,但我想把它作为一个集中的功能放到另一个功能文件中,我也可以在其他功能文件中使用它。
但是我将无法从其他功能文件中调用 ScrollHeight 和 ScrollFunction?
这就是我尝试在新功能文件中创建它的方式
滚动功能
Feature: Dynamic page scrolling Function
Scenario: Scrolling function
*def obj = read('classpath:Testing.feature')
* def ScrollingFunction =
"""
function(){
var height = obj.ScrollHeight()
while(true)
{ obj.ScrollFunction()
var newHeight = obj.ScrollHeight()
if(height === newHeight )
break;
height = newHeight
}
}
"""
还有我的 测试功能文件看起来像
Feature: Testing
Background:
* def ScrollHeight = function(){return script("document.body.scrollHeight")
* def ScrollFunction = function(){
script("window.scrollTo(0,document.body.scrollHeight)")}
Scenario: Test-1
* def fun = call read('classpath:Scrolling.feature')
* call fun.ScrollingFunction
但这对我不起作用

最佳答案

所有方法如script()仅在 driver 之后可用默认情况下已实例化。因此,请确保在 driver <url> 之后声明任何可重用的函数。步。
否则你必须做这样的事情才能重用:

   * def getScrollHeight =
"""
function() {
var driver = karate.get('driver');
return driver.script("document.body.scrollHeight");
}
"""
如果这不起作用,请创建一个快速入门示例,以便我们进行调查: https://github.com/intuit/karate/tree/develop/examples/ui-test

关于karate - 如何在另一个特征文件的javascript函数中调用我的特征文件函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63338128/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com