【问题标题】:Webdriverio check content from every pageWebdriverio 检查每个页面的内容
【发布时间】:2021-12-20 19:03:27
【问题描述】:

我正在尝试进行自动测试以检查搜索栏是否正常工作。我的问题是,在我搜索之后,我得到的不是一个,而是很多不同的页面,我需要检查每个页面的每个项目是否符合条件。问题是:如何遍历每个页面来检查它们?

见下面的代码:

search.page.js

    
const Page = require('./page');
 
class SearchResultsPage extends Page {
 
    get propertyLocation() {
        return $$('[aria-label="Location"]');
    }
 
    get pages() {
        return $$('[title*="Page"]');
    }
 
    get btnNextPage(){
        return $('[title="Next"]');
    }
 
    open() {
        return super.open('/for-sale/property/dubai/dubai-marina/');
    }
 
    open_page(page_index) {
        return super.open('/for-sale/property/dubai/dubai-marina/page-' + str(page_index));
    }
}
 
module.exports = new SearchResultsPage();

test.e2e.js

 const pages = await SearchResultsPage.pages
        console.log('here before');
        console.log(pages)
        pages.forEach(page => {
            console.log("i am here");
            page.click();
        });

wdio.conf.js

exports.config = {
    specs: [
        './test/specs/**/*.js'
    ],
    // Patterns to exclude.
    exclude: [
        // 'path/to/excluded/files'
    ],
    maxInstances: 10,
    
    capabilities: [{
        maxInstances: 5,
        browserName: 'chrome',
        acceptInsecureCerts: true
    }],
    logLevel: 'info',
    bail: 0,
    baseUrl: 'https://www.bayut.com/',
    waitforTimeout: 10000,
    connectionRetryTimeout: 120000,
    connectionRetryCount: 3,
    services: ['chromedriver'],
    framework: 'mocha',
    reporters: ['spec'],
    mochaOpts: {
        ui: 'bdd',
        timeout: 60000
    },
}

【问题讨论】:

    标签: javascript mocha.js webdriver-io


    【解决方案1】:

    如果我理解得很好,您想在页面之间循环。您可以使用 while 循环来执行此操作,并将所需的信息存储到数组中。如果下一个 btn 存在,你可以有一个方法 hasNextButton() 返回一个布尔值。

    例如:

       while (searchPage.hasNextButton()) {
            // do anything you want 
            list.push(item.getText());
            
            searchPage.clickNextBtn();
        }
     
    

    或者如果你想要一定数量的页面:

       let pageNumber = 1;
    
       while (pageNumber <= totalPages) {
            // do anything you want 
            list.push(item.getText()); 
    
            searchPage.clickNextBtn();
            pageNumber++;
        }
    

    存储信息后,您可以随意处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多