在javascript(nightwatch.js)中从下拉菜单中选择随机值
我对javascript或nightwatch.js没有太多的经验,所以如果这是一件显而易见的事情,我深表歉意 我有一个随机填充的下拉菜单 我想做的是随机选择这些下拉菜单选项之一 下拉菜单的html如下所示 我只想从列表中选择一个条目(当然,下一次加载元素时,条目和名称的数量会发生变化) 我有一个有效的ruby脚本在javascript(nightwatch.js)中从下拉菜单中选择随机值,javascript,nightwatch.js,Javascript,Nightwatch.js,我对javascript或nightwatch.js没有太多的经验,所以如果这是一件显而易见的事情,我深表歉意 我有一个随机填充的下拉菜单 我想做的是随机选择这些下拉菜单选项之一 下拉菜单的html如下所示 我只想从列表中选择一个条目(当然,下一次加载元素时,条目和名称的数量会发生变化) 我有一个有效的ruby脚本 modelrangeselect = @driver.find_element(:id, 'listRange_ddlItems') carmodelrange = modelra
modelrangeselect = @driver.find_element(:id, 'listRange_ddlItems')
carmodelrange = modelrangeselect.find_elements(:tag_name =>
'option').sample
但是我无法计算出javascript的等价物是什么,所以我可以在nightwatch.js上运行它
任何帮助都将不胜感激
谢谢。在我看来,这应该足以随机选择其中一个选项,代码应该是不言自明的:)
感谢您的迅速回复。但是,当我使用上面的代码运行测试时,我得到以下错误:;✖ TypeError:无法读取未定义的属性“length”任何想法为什么会出现此错误?谢谢您可能在创建
元素之前运行脚本,请尝试在正文结束标记之前运行脚本。
// get the dropdown element
const select = document.getElementsByClassName('url-dropdown');
// fetch all options within the dropdown
const options = select.children;
// generate a random number between 0 and the total amount of options
// the number will always be an index within the bounds of the array (options)
const random = Math.floor(Math.random() * options.length);
// set the value of the dropdown to a random option
select.value = options[random].value;