繁体   English   中英

".elements() 如何在守夜人中工作?"

[英]How .elements() works in nightwatch?

考虑到我有多个 tr,我想选择一个并通过单击绑定到它的编辑按钮来编辑其中的值。

我正在做这样的事情:

browser.elements('css selector', '#someId  tr', elements => {
  elements.value.forEach(val => {
    console.log(val)
  }

当我运行browser.elements并在elements.value数组中记录条目时,我得到类似{ ELEMENT: '5' } 所以,回答你的问题:

  1. 'abcd-1234-qwer-0987' 到底是什么,这个会话 ID 是什么东西,它会改变吗?

可能是某种会话 ID,但我不确定。 不管它是什么,你不需要它来做你正在做的事情。

  1. 获取特定元素的最佳方法是什么?

如果我试图从几个相似的元素中选择一个,我的代码最终看起来像这样:

browser.elements('css selector', '#someId', result => {
  // index is defined somewhere else
  browser.elementIdClick(result.value[index].ELEMENT, () => {
    // whatever you want to do after you click the element.
  });
});

如果这对您不起作用,您能否分享您正在运行的操作系统和浏览器,以及您的守夜配置文件?

它返回的元素项是 Web Element json 对象。 一个 Web 元素 ID

https://nightwatchjs.org/api/commands/#elements

1. 'abcd-1234-qwer-0987' 到底是什么,这个会话 ID 是什么东西,它会改变吗?

是的,它会根据 Session 改变

2.什么是抓取特定元素的最佳方式

参考以下

使用 Nightwatch,如何从 ELEMENT 实体获取 DOM 元素及其属性?

browser.elements('css selector', '#someId  tr', elements => {
 console.log(elements);
elements.value.forEach(element =>{
let key = Object.keys(element)[0];
let ElementIDvalue = element[key];
console.log("key = ",  key);
console.log("WebElementIDvalue = ", ElementIDvalue);
})
});

我发现的所有关于您尝试做的文档都说我应该能够使用obj.ELEMENT<\/code>但他们没有说的是它需要在您的守夜人配置中将w3c<\/code>设置为 false。

带有上下文的示例:

  test_settings: {
    default: {
      end_session_on_fail: false,
      disable_error_log: false,
      launch_url: 'http://localhost:3000',

      desiredCapabilities : {
        browserName : 'chrome',
        'goog:chromeOptions' : {
          // More info on Chromedriver: https://sites.google.com/a/chromium.org/chromedriver/
          //
          // w3c:false tells Chromedriver to run using the legacy JSONWire protocol (not required in Chrome 78)
          w3c: true,
          args: [
            '--auto-open-devtools-for-tabs',
            //'--no-sandbox',
. . .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM