作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我创建了一个看起来像这样的滚动功能
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
}
}
"""
所以我在我有我的测试场景的同一个功能文件中创建了它,但我想把它作为一个集中的功能放到另一个功能文件中,我也可以在其他功能文件中使用它。
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/
我是一名优秀的程序员,十分优秀!