如何使用Protractor搜索类,在类中找到p标记并验证其某些文本

How can I use Protractor to search through a class, find a p tag in the class and verify some of its text?

本文关键字:验证 文本 搜索 Protractor 何使用      更新时间:2024-06-28

我想做的是找到一种方法,使用Protractor来定位一个类,并搜索该类中的所有p个标签,看看其中是否有任何标签在文本中包含"Glennville,GA"。

这就是我在我的规范文件中尝试做的事情

it('should filter results by location', function() {
    browser.driver.wait(function(){
        return browser.driver.isElementPresent(by.id('jobLocationFilter'));
    });
    browser.driver.findElement(by.id('jobLocationFilter')).click();
    browser.driver.findElement(by.css('[value="5"]')).click();
    browser.driver.wait(function() {
        return browser.driver.isElementPresent(by.css('[class="Title"]'));
    });
});

从本质上讲,我所做的是从下拉菜单中选择一个选项,我需要写一个期望来验证我是否选择了该选项。我尝试了很多不同的方法,但似乎找不到适合我的方法

这是我正在使用的HTML:

<div class="jobEntry">
   <span class="Title">
      <a href="/rewrite_your_future/job_postings/122">Lead QA Test Engineer</a>
   </span>
   <p>Lead QA Engineer Glennville, GA</p>
</div>

如何编写代码来完成我需要它做的事情?我一直想不通。

哦,这是我的.conf文件,以防有帮助:

exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js']
}

我将使用element.all()+filter(),并最终检查count():

var desiredElements = element.all(by.css("div.entry p")).filter(function (elm) {
    return elm.getText().then(function (text) {
        return text.indexOf("Glennville, GA") >= 0;
    });
});
expect(desiredElements.count()).toBeGreaterThan(0);

如果jobEntry类是唯一的,并且内部只有一个p标记,则应该使用以下方法:

expect(element(by.css('[class="jobEntry"]')).element(by.tagName('p')).getText().toContain('Glennville,GA');