【问题标题】:nightwatch select current element's inner divnightwatch 选择当前元素的内部 div
【发布时间】:2018-03-30 05:00:38
【问题描述】:

我是守夜人的新手,想知道是否有什么好的方法可以选择当前元素的内部元素然后获取文本?假设我有以下内容..并且我正在尝试检索每个 (li) 的 (a) 标签内的文本。

所以我想获取“要检索的文本”和“要检索的文本 2”。

   ...
 <div class="mywrapperhere">
 <ul>
   <li>
     <a>.....
        <div>text to retrieve</div>
     </a>
   </li>
   <li>
     <a>.....
        <div>text to retrieve 2</div>
     </a>
   </li>
   <li>...   
   ...
 </div>

我是这么想的..

module.exports = {
  'Demo test 1' : function (browser) {
  ....
  
    
	//some sort of selector then gets from the anchor list
	...'.mywrapperhere li a') : {
	  ..
	  //for each element of the anchor..
	  {	    
		//is there anyway to get it through something like 
          element.('div').innerHTML eg..
        //or am i forced to use browser.execute( ...getElementsByTag method
        //to achieve this?
		
		
	  }
	}
	  
    browser.end();
  }
};

查看 nightwatch api,我找不到任何允许我这样做的东西。我特别关注“元素状态”示例,这些示例似乎无法让我选择当前元素状态的子元素:

http://nightwatchjs.org/api/elementIdAttribute.html

我必须遍历锚标记级别的原因是因为除了来自 div 标记的数据之外,我还需要检索更多数据,谢谢!

【问题讨论】:

    标签: nightwatch.js


    【解决方案1】:

    您可以使用elementIdElementelementIdText 从子元素中获取文本。首先,您可以使用.elements() 获取所有li 元素。然后你使用elementIdElement 来获取一个子元素。然后你可以使用elementIdText 来获取这个子元素的文本。这是一个示例,可让您在 sn-p 中获取两个列表项的文本并将值记录到控制台。

    browser.elements('css selector', 'li', function(listItems) {
        listItems.value.forEach(function(listItem) {
            browser.elementIdElement(listItem.ELEMENT, 'css selector', 'a', function(anchor) {
                browser.elementIdText(anchor.ELEMENT, function(text) {
                    console.log(text.value);
                });
            });
        }, browser); //have to pass in browser for scoping 
    });
    

    【讨论】:

    • 谢谢,但我注意到 elementIdText 只有在用户可见时才会获取该值,如果不是,则返回空字符串。
    • 好的。这是一个问题吗?如果需要,可以先使用.elementIdDisplayed 检查元素是否可见。
    • 但该值将返回一个标签的值 但我想要一个标签的文本,例如 a text span text 值将返回以下文本“a text/span text”有一些特定的方法来获取“a text”
    • 抱歉,我不知道该如何处理。据我所知,没有办法从子元素中过滤掉文本。目前我唯一能想到的就是获取子节点的文本,然后从父节点的全文中删除。那么你应该只留下你正在寻找的文本。
    猜你喜欢
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多