javascript - Nightwatch 为每次调用使用相同的元素选择器

标签 javascript selenium-webdriver nightwatch.js

在同一元素上执行多个操作时,是否有办法避免使用元素选择器两次或多次?

例如 ('一些测试', function (浏览器) { 浏览器 .waitForElementVisible('选择器', 10000) .click('相同的选择器') }),

不能像Cypress那样安排吗?

Cy
  .get('element')
  .should('be.visible')
  .click()    - like 3 actions with only one mentioning of the element's selector

或者将元素保存为变量然后使用它?

我在互联网上进行了搜索,但没有找到任何合适的主题

最佳答案

执行此操作的方法是将定位器移动到 page object或如 API Docs 中所述的变量

NightwatchJS 不遵循 Cypress 模式的原因是我们允许链接所有命令。这意味着您可以创建更复杂的测试。

const githubButton = 'a[aria-label="Nightwatch on Github"]';

  before(browser => browser.navigateTo('https://nightwatchjs.org/'));

  after(browser => browser.end());

  it('click element', function (browser) {
    browser
      .click(githubButton)
  });    

只有在 Nightwatch 中可见时才会发生单击,因此您无需在单击之前为其添加断言

关于javascript - Nightwatch 为每次调用使用相同的元素选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76374699/

相关文章:

javascript - 将生成器转换为普通函数

javascript - 在 2D 空间中模拟 3D 距离的公式?

javascript - 将输入标签制作成下拉列表

javascript - 从数组中删除元素并更新表

java - 如何在不使用文本的情况下从页面中选择内容?

performance - 使用 chrome 和 selenium 进行网络节流

nightwatch.js - 从 Nightwatch 获取列表中元素的数量

dom - Selenium 的幕后工作

javascript - 如何在 nightwatch.js 中使用退格键从文本区域中删除文本

chai - 如何让 Nightwatch 在记者中显示 Chai 断言?