【问题标题】:Selenium WebdriverIO does not see all texts of ReactJS list's optionsSelenium WebdriverIO 没有看到 ReactJS 列表选项的所有文本
【发布时间】:2018-07-31 13:32:10
【问题描述】:

同志们!

我遇到了从元素获取文本的问题,ReactJS 下拉列表的选项是什么。 我提到,那个版本的 webdriver 是 3.6.0,Chromium - 63。

DOM 片段:

<div class="Select-menu-outer" data-reactid=".0.1.3.2.0.0.0.0.2.3.3.3.0.1.0.3.3:1.3.3.3.0.1.$0.1.0.0.$0.0.0.0.0.4.0.3.2">
 <div class="Select-menu" data-reactid=".0.1.3.2.0.0.0.0.2.3.3.3.0.1.0.3.3:1.3.3.3.0.1.$0.1.0.0.$0.0.0.0.0.4.0.3.2.0">
  <div class="Select-option is-selected is-focused" data-reactid=".0.1.3.2.0.0.0.0.2.3.3.3.0.1.0.3.3:1.3.3.3.0.1.$0.1.0.0.$0.0.0.0.0.4.0.3.2.0.$option-0-202004">Not started</div>
  <div class="Select-option" data-reactid=".0.1.3.2.0.0.0.0.2.3.3.3.0.1.0.3.3:1.3.3.3.0.1.$0.1.0.0.$0.0.0.0.0.4.0.3.2.0.$option-1-202001">In progress</div>
  <div class="Select-option" data-reactid=".0.1.3.2.0.0.0.0.2.3.3.3.0.1.0.3.3:1.3.3.3.0.1.$0.1.0.0.$0.0.0.0.0.4.0.3.2.0.$option-2-202002">Done</div>
  <div class="Select-option" data-reactid=".0.1.3.2.0.0.0.0.2.3.3.3.0.1.0.3.3:1.3.3.3.0.1.$0.1.0.0.$0.0.0.0.0.4.0.3.2.0.$option-3-202003">Undone</div>
 </div>
</div>

JavaScript sn-p(此时下拉列表已打开;我确实看到了屏幕上的选项):

$('div.Select-menu-outer>div.Select-menu').$$('div').map(elmt => {
        console.log('element - ' + elmt.getText());
      });

输出是:

element - 
element - 
element - 
element - Undone

我以前从未见过这样的行为。你? 我不明白,为什么 Selenium 不能识别前三个元素的文本,但能识别最后一个元素。

你能给我一些建议吗?我应该在哪里挖掘?

【问题讨论】:

    标签: javascript reactjs selenium chromium webdriver-io


    【解决方案1】:

    非常有趣的情况。我将尝试使用它来查看它是否有效:

    $('div.Select-menu-outer>div.Select-menu').$$('div').map(elmt => {
        elmt.waitForText(3000);
        console.log('element - ' + elmt.getText());
      });
    

    【讨论】:

      猜你喜欢
      • 2020-08-17
      • 2020-03-31
      • 1970-01-01
      • 2020-03-01
      • 2023-02-26
      • 2018-02-10
      • 2020-10-16
      • 2015-02-07
      • 2014-08-24
      相关资源
      最近更新 更多