使用Protractor Framework在Element XPath中查找子跨度

时间:2017-08-18 22:05:33

标签: javascript xpath protractor

我有以下几行代码:

.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开发工具中手动执行操作也能获得预期结果。

尝试这个或建议的任何其他方式?如果需要,我可以澄清一些。

0 个答案:

没有答案