このコードを静的 HTML ページでテストしたところ、正常に動作しました。以下を Selenium に追加しようとすると、「[エラー] 予期しない例外: fileName -> chrome://selenium-ide/content/selenium-core/scripts/selenium-api.js, lineNumber -> 2531」が発生します。値を保存していないと思います:
runScript | {codebelow}
echo | javascript{storedVars['dropdowns']}
Selenium では、「関数」の前の空白を削除しました (これは上記の {codebelow} です)。
function loop_dropdown(label){
regions = window.document.getElementsByName(label)[0].children;
idx=0;
for (var i=0; i<regions.length;i++) {
option = regions[i];
if (option.value != -1) //Don't Use the All Option
{ var entry = {};
entry.value_num = option.value;
entry.value_txt = option.innerHTML;
dropdowns[idx]=entry;
idx++;
}
}
storedVars['dropdowns'] = dropdowns;
//document.write(storedVars['dropdowns'][0].value_num);
//document.write(storedVars['dropdowns'][0].value_txt);
}
loop_dropdown('region');
静的 HTML ページ:
<head>
<script type="text/javascript">
//if (test)
var storedVars = [];
var dropdowns = [];
</script>
<script type="text/javascript">
function loop_dropdown(label){
regions = window.document.getElementsByName(label)[0].children;
idx=0;
for (var i=0; i<regions.length;i++) {
option = regions[i];
if (option.value != -1) //Don't Use the All Option
{ var entry = {};
entry.value_num = option.value;
entry.value_txt = option.innerHTML;
dropdowns[idx]=entry;
idx++;
}
}
storedVars['dropdowns'] = dropdowns;
//document.write(storedVars['dropdowns'][0].value_num);
//document.write(storedVars['dropdowns'][0].value_txt);
}
</script>
...<body>...
<script type="text/javascript">loop_dropdown('region');</script>