我目前正在与Mocha,Chai和WebdriverIO进行集成测试。 WebdriverIO语法需要一系列承诺来浏览浏览器,其示例如下:
it('sign in and out test', function() {
return client
.url(Page.url)
.pause(20000)
.waitForVisible(HomePage.signInDropdown, 10000)
.click(HomePage.signInDropdown)
}
这导致了长代码块,每个步骤都明确排列。由于在不同的测试中经常使用某些步骤(例如登录和注销),我想通过回调模块化这些代码片段。但是,以下语法在没有嵌套回调的情况下运行失败:
function myCallback(){
console.log('This is where I''d add promises');
}
it('sign in and out test',function() {
return client
.url(Page.url)
.pause(20000)
.then(function() {
myCallback();
}
.waitForVisible(HomePage.signInDropdown, 10000)
.click(HomePage.signInDropdown)
}
回调中的以下不同语法也会失败:
function myCallback(){
return client
.url(Page.url)
console.log('This is a callback using return');
}
鉴于承诺主要是为了取代回调,在这种特殊情况下是否可以通过回调继续承诺链?
答案 0 :(得分:0)
def quad(degree):
if degree <= '90':
angle = 'Quadrant 1'
else:
if degree <= '180':
angle = 'Quadrant 2'
else:
if degree <= '270':
angle = 'Quadrant 3'
else:
if degree <= '360':
angle = 'Quadrant 4'
return quad
print (quad ('100'))
的{p> myCallback()
不是return
。
.then()
答案 1 :(得分:-1)
退出承诺解决后,我们需要在链中做其他工作。
请检查一下,
function myCallback(){
return client
.url(Page.url)
}
it('sign in and out test',function() {
return client
.url(Page.url)
.pause(20000)
.then(function() {
myCallback()
.waitForVisible(HomePage.signInDropdown, 10000)
.click(HomePage.signInDropdown);
}
}