【问题标题】:Trying to understand browser.elementIdText command试图理解 browser.elementIdText 命令
【发布时间】:2018-11-05 18:26:57
【问题描述】:

我找不到太多信息或有用的示例来了解此方法如何在 Javascript UI 测试框架上工作。我有以下在数组中返回的元素:

console.log(elementarray[0]);

{ ELEMENT: '25',
  'element-6066-11e4-a52e-4f735466cecf': '25',
  selector: '[data="abc"]',
  value: { ELEMENT: '25' },
  index: 0 }

但是当我跑步时:

browser.elementIdText(elementarray[0].ELEMENT)

我看到了:

{ state: 'success',
  sessionId: 'af7ef2fb-7d1d-456e-ad14-c5c1fd9d83c2',
  hCode: 1013623656,
  value: '17:55',
  class: 'org.openqa.selenium.remote.Response',
  _status: 0 }

browser.elementIdText 究竟是如何在这里工作的,任何人都可以通过示例提供一个简单的解释。我在这里看到了当我记录数组中的第一项时没有看到的信息,并且 elementarray[0].ELEMENT 的值肯定只有 25 对吗?如对象的第一个属性所示?

感谢任何有用的回复。

【问题讨论】:

  • 如果有人能提供一些启发,将会很有帮助。

标签: javascript selenium-webdriver webdriver nightwatch.js webdriver-io


【解决方案1】:

elementIdText 期望 ID 作为参数。为了获取 ID,您需要使用 allElem.value[0].ELEMENT 例如。请参阅下面的代码。

describe('allx', () => {

it('allx', () => {

  browser.url("https://the-internet.herokuapp.com/");
  allElem=browser.elements('//div[2]/div/ul/li/a');
  console.log(allElem.value[0].ELEMENT)
  text=browser.elementIdText(allElem.value[0].ELEMENT).value;
  console.log(text);
 });
});

【讨论】:

  • 你能不能把它分解一下,这样 allElem 就变成了页面上每个 div 和 ul、li 和一个元素的集合?我看到这返回 38 个元素。这些元素上的 value 属性表示 [object],那么如何访问这个 value 对象的 ELEMENT 属性是什么?
  • 我的意思是我明白你在做什么,你能解释一下不同点发生了什么吗,谢谢。
  • 在这个@jobe 上还需要帮助吗?
  • @iamdanchiv 当然,如果您可以添加任何帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 2014-02-14
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
  • 2020-05-27
相关资源
最近更新 更多