1

所以我试图自动化在https://www.business.att.com/disconnects/上填写网络表单的过程。

我正在使用 Playwright 测试工具使用 JavaScript 自动执行此过程

我有剧作家中概述的步骤:

const { test, expect } = require('@playwright/test');

test('filling out ATT disconnect webform', async ({ page }) => {

  await page.goto('https://www.business.att.com/disconnects/');

  await page.click('select[name="region"]');
  await page.selectOption('select[name="region"]', "ES");

  await page.selectOption('select[name="service"]', 'ZH:E2');

  await page.click('text=Desired Disconnect Date');
   // This RequestedDisconnectDate is one of the values I want to pull from a local csv. I have it hard coded for now

  await page.fill('input[name="RequestedDisconnectDate"]', '01/12/2022');
  await page.click('a:has-text("12")');



  // For "Disconnect Reason", ALWAYS select = "Other"
  await page.click('select[name="ReasonForDisconnect"]');
  await page.selectOption('select[name="ReasonForDisconnect"]', '31');


  // For "Reason Other", ALWAYS fill = "Other"
  await page.click('input[name="ReasonForDisconnectOther"]');
  await page.fill('input[name="ReasonForDisconnectOther"]', 'Other');

  // ... 

  await page.click('input[alt="Submit"]');

});

我试图传递的一些值是恒定的,但其他值是可变的。例如,RequestedDisconnectDate 存储在 csv 中。我想从保存在本地计算机上的 csv 中提取的那些值。但我不确定如何进行该过程。我一直在研究 js 库解决方案和 npm 包,例如 csv-parser 和 jquery。但我不确定如何解决。

如果有人能给我一个关于如何解决这个问题的想法,那将不胜感激。谢谢

4

1 回答 1

0

我不太了解 csv 文件。我有类似的 .json 文件,当时,我导入了 json 文件,如下所示:

import * as whatever from 'path;

const firstVariable = whatever.myvariables[1] // depends on the file structure.

然后我会将元素作为数组访问。所以你必须弄清楚你是否可以对 csv 做同样的事情,或者只使用 json 文件,据我所知,它的结构与 csv 文件非常相似。

另一种选择是使用 .env 变量。它并不打算用于这样的事情,但肯定会起作用。在 .env 文件中:

VARIABLE=variable content

在测试中:

page.fill('selector', process.evn.VARIABLE);

确保在执行测试文件时使用 env-cmd,以便 env 变量可用: env-cmd npm run test

于 2022-01-17T12:16:03.960 回答