当前位置: 首页 > 知识库问答 >
问题:

剧作家-登录表单、输入和提交问题单击

殳经略
2023-03-14

我想写这个网站的登录功能:

这是我的代码

const { chromium, firefox, webkit } = require('playwright');
(async () => {
  const browser = await chromium.launch({ headless: false, slowMo: 50  });
  const context = await browser.newContext({
    userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'
  });
  const page = await context.newPage();
  await page.goto('url');
  await page.type('input[name="userName"]', 'some@account');
  await page.type('input[name="password"]', 'somepassword');
  await page.click('text=Sign In');
  await page.waitForTimeout(2000);
  await context.close();
})();

我把无头:假,所以我可以看到是怎么回事,但输入值不填写和登录按钮没有点击,任何帮助?

共有3个答案

卫琛
2023-03-14

我尝试了上面提到的一切,但第一次测试它没有正确登录。然而,从第二个测试用例来看,一切都很完美。我怀疑剧作家的测试是否有限制。我的问题是,每当我第一次运行测试用例时,它都会键入用户名。然后测试失败了,因为它无法进一步移动。然后,第二个测试用例加载浏览器,一切工作都很顺利。我正试图登录到这个网站https://login.microsoftonline.com/.

邢心水
2023-03-14

借助npx剧作家codegen,背负@hardkoded

这一步对我来说是最困难的,但这里有一些帮助。(不过,有些你可能已经在做了。)

  • 如果您还没有使用codegen,请使用它编写一个测试,看看是否有效。一旦这样做了,你可以从那里扩展,使事情更加灵活。(如果需要,请考虑使用页面对象模型。)
  • 不要使用input[name=“userName”]选择器,请确保此输入具有唯一的id。然后您可以执行`input[id=“userName”].
  • 尝试通过可访问性测试程序运行您的页面,以帮助支持在需要时生成唯一的ID和名称(请参阅Axe Playwright,尽管它还不完美)。可访问性的一部分是确保元素有足够的唯一id或aria id。在页面上实现可访问性不仅可以让所有人都更容易使用,还可以让选择器在测试中更加严格。当您通过这些测试后再次运行codegen时,您甚至会看到差异。(如果您不想通过编程评估可访问性,也可以使用浏览器扩展来帮助您实现这一点。)事实上,当我运行npx codegen www.google.com查看他们的输入字段弹出的内容时,我得到:wait page.fill(“[aria label=“Search”]”,stackoverflow”) 。注意他们使用的选择器是一个aria标签,用于辅助功能
  • 最后,我相信page.type(selector,value)page.fill(selector,value)之间是有区别的。我使用page.fill(选择器,值)来填写我的表单,这对我来说很好。也许你也可以试着换一下,看看是否有帮助

姜宏盛
2023-03-14

使用'input[name=“userName”]选择器有三个元素。我敢打赌,您尝试键入的不是第一个。您可以尝试改进选择器。例如,像这样的“#signInFormPage输入[name=“userName”]”

 类似资料:
  • 问题内容: 我有一个相当简单的登录表单,该表单随jQuery AJAX请求一起提交。当前,提交表单的唯一方法是按下“登录”按钮,但是我希望能够在用户按下“ Enter”时提交表单。 我只使用jQuery AJAX请求完成表单提交,但是我不确定要在用户按下“ Enter”键时提交表单也需要进行哪些修改。 HTML: JavaScript: 摘录自login.php: 问题答案: 在表单中添加一个ID

  • 问题内容: 我想在某些文本框条目上运行javascript用户验证。 我遇到的问题是我的表单具有进入我们站点内新页面的作用,并且该属性从未运行javascript函数。 有没有更好的解决方案,或者是可以使用以下代码的解决方案:注意:javascript文件编写正确,如果将操作切换为,则可以正常工作。 这只是同时运行动作和JavaScript的问题。 问题答案: 您应该通过在onsubmit回调上返

  • 问题内容: 由于某些原因,当我使用正确的登录信息时,此代码将不允许我进入网站。该帖子登录页面的代码,说明我的代码没有工作。有人可以告诉我我忘记了什么或出了什么问题吗? 问题答案: 除了,并且,该网站requeires为登录两个额外的价值- 和。 您可以从第一个请求的响应中获取它们,如下所示- 并将其添加到(顺序并不重要)之后- 我还将字段添加到两个请求中- 一些站点对其进行测试并将不同的页面发送到

  • 但单击登录按钮不起作用。 下面是链接http://accountsdemo.herokuapp.com/users/sign_in 已尝试通过signinLocator=By.name(“commit”);和signinLocator=By.xpath(“//input[@type='submit']”); 下面是相同的Java代码 我不知道我是不是做错了什么

  • 嗨,伙计们,我一直与使用超文本标记语言和PHP的网站之一有麻烦 表单似乎没有提交或发送消息。附件是代码请任何帮助将是伟大的。另外,还附上了PHP和javascript作为参考。有时页面也不响应按钮。如果有人能修复代码将是伟大的。

  • 这是关于先前提出的一个持续的问题。我正在尝试使用HTML、CSS和JavaScript制作一个联系表单。我所有的条件似乎都很好。这里的问题是,每当我输入一个特定字段失败,然后重新输入它时,错误消息仍然会显示出来。此外,我希望用户在单击Submit并满足所有条件后被重定向到另一个HTML页面。我想在这方面得到一些指导。随函附上守则,以供参考。 null null null null null nul