美文网首页
JavaScript+playwright:几个小练习

JavaScript+playwright:几个小练习

作者: 粥一样温柔 | 来源:发表于2023-11-04 20:39 被阅读0次
  1. 访问百度首页
import { test, expect } from '@playwright/test';

test.describe('baiduTopPage', () => {
  test.beforeEach('open baiduToppage', async ({ page }) => {
    await page.goto('https://www.baidu.com/');

  });

  test('Open a page and assert title', async ({ page }) => {
    const pageTitle = await page.title();
    console.log(pageTitle);

    expect(pageTitle).toContain('百度一下,你就知道');
  });
  })
  1. 比较图片
import { test, expect } from '@playwright/test';
import * as fs from 'fs';


test('image compare', async ({ page }) => {
    let hasImage = false

  page.on('response', async response => {
    if(response.url().includes('PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png')) {
      hasImage = true
      const response_buffer = await response.body()
      const local_image = await readFileAsync('downloaded_baiduPic.png')
      expect(response_buffer.toString('utf-8')).toEqual(local_image)
    }
  });

  await page.goto('https://www.baidu.com/');
  if (!hasImage){
    throw new Error('not found picture!');
  }
});



function readFileAsync(filePath: string): Promise<string> {
  return new Promise((resolve, reject) => {
// 读取本地文件
    fs.readFile(filePath, 'utf-8', (err, data) => {
      if (err) {
        reject(err);
  } else {
        resolve(data);
    }
  });
});
}

  1. 下载图片

import { test, expect } from '@playwright/test';
import * as fs from 'fs';


test('image download', async ({ page }) => {
  let hasImage = false;
  page.on('response', async response => {
    if (response.url().includes('PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png')){
      const response_buffer = await response.body()
      hasImage = true;
      await writeFileAsync('download_baiduPic.png',response_buffer)
    }
  });

  await page.goto('https://www.baidu.com/');
  // expect(hasImage).toEqual(true)
  if (!hasImage){
    throw new Error('not found picture!');
  }
});

function writeFileAsync(filePath, data) {
  return new Promise<void>((resolve, reject) => {
    fs.writeFile(filePath, data, 'utf-8', (err) => {
      if (err) {
        console.error('图片读取发生错误!:', err);
        reject(err);
      } else {
        console.log('图片已下载');
        resolve();
      }
    });
  });
}

比较豆瓣“消费降级”小组人数大于35万

今天消费降级了吗.png image.png

import { test, expect } from '@playwright/test';

test('比较 消费降级小组的成员人数是否大于35万', async ({ page }) => {
  await page.goto('https://www.douban.com/group/644670/');

  //定位到包含小组人数的元素
  const numLocator = await page.locator('//*[@id="content"]/div[2]/div[2]/div[3]/p/a');
  //获取元素的innerText()
  const numStr = await numLocator.innerText() 
  
  // <a href="https://www.douban.com/group/644670/members">浏览所有骄傲的倔降 (359495)</a>
  // 用正则提取数字
  const regex = /\((\d+)\)/; // 匹配括号内的数字
  const match = numStr.match(regex);

  if (match && match[1]) {
    const numberStr = match[1];
    console.log(`提取的数字是:${numberStr}`);

    //数字现在是str类型,需要转成int
    const numberInt = Number(numberStr);
    // 对比数字是否大于35w
    expect(numberInt).toBeGreaterThan(350000);
  } else {
    console.log('未找到匹配的数字');
  }
});

相关文章

  • Ai萌漫插画小练习

    周末在家用Ai画了几个萌漫小插画练习。 最近用iPad Pro画画练习比较多,周末用Ai画几个小练习之后,感觉还是...

  • 圆珠笔几个小练习

    因为手边有的时候只有圆珠笔,所以就有了这些速涂的小画,当然都是临摹的。当然,型可能不太准,因为用圆珠笔直接画的,没...

  • 2022-09-08练习之开肩

    今天的练习,印象最深刻的是开肩的几个小练习。 之所以叫小练习,是因为没有特别的体式名称,借助辅具,让胸腔充分打开。...

  • 求离散型随机变量的分布列及数字特征问题

    小练习1 解析 小练习2 小练习3 解析 小练习4 解析 小练习5 解析 小练习6 解析 小练习7 解析 小练习8...

  • 指对幂函比大小问题

    概述 步骤 拓展 小练习1 解析 小练习2 解析 小练习3 解析 小练习4 解析 小练习5 解析 小练习6 解析 ...

  • 二项分布问题

    二项分布问题 小练习1 解析 小练习2 解析 小练习3 解析 小练习4 解析 小练习5 解析 小练习6 解析 小练...

  • 周期性与对称性相关问题

    概述 应用举例 拓展 小练习1 解析 小练习2 解析 小练习3 解析 小练习4 解析 小练习5

  • 风格练习2

    三种小练习 一,选词练习:渐渐, 回头路, 回味, 结伴, 树叶 要点和目的:从词典上抽取几个词,不要思考,不要斟...

  • 平面向量的坐标运算

    概述 解决办法 小练习1 解析 小练习2 解析 小练习3 解析 小练习4 解析 小练习5 解析

  • 外接球问题

    题型及解决办法 应用 1 2 3 4 小练习1 小练习2 小练习3 小练习4 小练习5

网友评论

      本文标题:JavaScript+playwright:几个小练习

      本文链接:https://www.haomeiwen.com/subject/zofwidtx.html