如何使用NightwatchJS从下拉列表中选择一个有效的随机值
How to select a valid random value from drop down using NightwatchJS?
我正在尝试使用夜巡自动执行一些UI测试.js,我需要从下拉列表中选择一个随机值,如下所示的代码。
<select class="form-control" name="drop_ddl" id="drop_ddl">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
到目前为止,我正在使用一种方法,如果我选择的随机数在下拉选项值中不存在,则我不可靠。
var drop_ddl=Math.floor((Math.random() * 8) + 1);
return this.client.click("#drop_ddl option[value='"+drop_ddl+"']");
如果随机数是 6,它没有出现在列表中,它将无法通过进一步的测试。
有没有办法我们可以将值读取到数组中,然后仅从这些可用值中随机选择?
使用 elements
获取所有下拉选项。
browser.elements('css selector', '#drop_ddl option', function(result) {
return result.value.length;
})
现在您已经有了选项的数量,请使用第 n 个子选项选择一个随机选项。
var drop_ddl=Math.floor((Math.random() * optionsLength) + 1);
return this.client.click("#drop_ddl option:nth-child(drop_ddl)");
如何向选项添加顺序 ID?
<select class="form-control" name="drop_ddl" id="drop_ddl">
<option id="1" value=""></option>
<option id="2" value="1">1</option>
<option id="3" value="2">2</option>
<option id="4" value="3">3</option>
<option id="5" value="4">4</option>
<option id="6" value="7">7</option>
<option id="7" value="8">8</option>
<option id="8" value="9">9</option>
<option id="9" value="11">11</option>
<option id="10" value="12">12</option>
</select>
<script>
var drop_ddl=Math.floor((Math.random() * 10) + 1);
$("#drop_ddl option[id='" + drop_ddl + "']").attr("selected", "selected");
</script>
遇到类似的情况,当您必须选择随机单选按钮时。这有点棘手 - 你不能真正使用:nth-child
选择器,因为血腥的混蛋可能会散布到各个地方。在这种情况下,您可以使用:
exports.command = function (selector, value) {
this
.elements('css selector', selector, res => {
if (res.value.length) {
let random = Math.floor(Math.random() * res.value.length);
let el = res.value[random].ELEMENT;
this.elementIdClick(el);
}
});
return this;
};
相关文章:
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- 是什么让新的Date() / 1000成为一个有效的javascript
- 这是一个有效的JS代码吗
- 多个弹出窗口,但只有一个有效..为什么?
- Jquery - 相同的代码,但只有一个有效
- RxJS:如何在传递下一个有效值之前进行一些清理
- 这是一个有效的 XPath 查询吗?
- 在 JavaScript 中,数组如何引用到空字符串 + true 中是一个有效字符
- 两个相同的键控事件;只有一个有效
- JavaScript 方法一个有效,另一个无效
- 如何使用NightwatchJS从下拉列表中选择一个有效的随机值
- 将 Base64 编码的图像加密为另一个有效的 Base64 编码图像
- 使用 Javascript 构造一个有效的 JSON 对象
- 我有一个有效的 JSON,但我不断收到“语法错误 json.parse 第 1 行意外的数据结尾”
- 这是一个有效的递归函数吗
- 有人能告诉我为什么其中一个有效,另一个无效吗
- 在Rails助手中使用Javascript调用验证文本字段时,如何返回最后一个有效输入
- Undefined不是一个有效的uri或options对象.在expressjs
- 我如何检查一个字符串是否会使用JS使一个有效的html ID
- 函数从字符串创建一个有效的id.正则表达式