【问题标题】:how to iterate through each text field in selenium ?如何遍历 selenium 中的每个文本字段?
【发布时间】:2017-10-13 00:18:41
【问题描述】:

我有一个文本字段列表,每个字段都有相同的类名。这是html代码:

每个文本字段具有相同的类名,我试图通过使用 selenium 中的 sendKeys 方法将键发送到每个文本字段来自动化字段。我正在使用 JavaScript(chai,mocha,node) 来运行我的自动化。

             <div>
                 <textarea class="form-control textarea-multi" name="191_table_1"></textarea>
                 <textarea class="form-control textarea-multi" name="191_table_1"></textarea>
                 <textarea class="form-control textarea-multi" name="191_table_1"></textarea>
                 <textarea class="form-control textarea-multi" name="191_table_1"></textarea>
                 <textarea class="form-control textarea-multi" name="191_table_1"></textarea>
                 <textarea class="form-control textarea-multi" name="191_table_1">adad</textarea>
                 <textarea class="form-control textarea-multi" name="191_table_1">adadad</textarea>
                 <textarea class="form-control textarea-multi" name="191_table_1"></textarea>
                 <textarea class="form-control textarea-multi" name="191_table_1"></textarea>
              </div>

这是我尝试过的。我尝试通过 className 使用 findElements 并遍历 className 然后填充每个文本字段:

describe('complete text fields',function(){
        it('fill all the text fields',function(done){
            driver.findElements(By.css("input[type=\'form-control textarea-multi\']")).then(function(texts){
                console.log("got the list of texts");
                texts.forEach(function(textField){
                    console.log("sending keys for each of the text field");
                    textField.sendKeys("test");
                    count = Number(count) + 1;
                    console.log(count);
                    if(count === 6) {
                        done();
                    }
                });
            });
        });
    });

但它会因超时错误而失败。 (错误:超过 15000 毫秒的超时。)任何帮助将不胜感激提前谢谢您。

【问题讨论】:

标签: javascript selenium mocha.js chai


【解决方案1】:

尝试使用:

By.css(".form-control.textarea-multi")
By.xpath("//*[@class='form-control textarea-multi"]

【讨论】:

  • 我仍然遇到同样的错误。但是,我尝试打印数组大小。它似乎为零。我尝试了你的两个建议。 driver.findElements(By.By.xpath("//*[@class='form-control textarea-multi']"))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多