我有以下几行代码:
.then(function click(services) {
var tryItElement;
if (services.length < 1) {
return;
}
buttonElement = element(by.xpath('//div[@class="my-class" and contains(., \'' + services[0].title + '\')]//span[contains(., \'Button Text\')]'));
return browser.wait(protractor.ExpectedConditions.elementToBeClickable(buttonElement), getWaitTime())
.then(function() {
return buttonElement.getWebElement();
})
.then(function(buttonElement) {
var protocol = url.parse(services[0].actionUrl).protocol;
if (protocol === null) {
throw new Error('expected ' + protocol + ' not to be null');
}
})
.then(function() {
return buttonElement.click();
})
.then(function() {
return browser.wait(helper.ExpectedConditions.responseCompleted(proxy, services[0].actionUrl), getWaitTime());
})
.then(function() {
return browser.get(browser.baseUrl);
})
.then(function() {
return click(services.slice(1));
})
})
.catch(fail)
.then(done);
我希望第一个在我的页面上找到一个元素,其中的类包含services[0].title
中指定的一些文本。确实如此,以下行在该元素中找到包含文本Button Text
的范围。
我有一个循环,出于某种原因,buttonElement
保持不变,即使在Chrome开发工具中手动执行操作也能获得预期结果。
尝试这个或建议的任何其他方式?如果需要,我可以澄清一些。