使用Chosen时,select元素被隐藏,无法通过代码选择。我试过这样的话:
$I->selectOption('form select[name="jform[plugin_id]"]', array('value' => '10054'));
或者这个:
$I->selectOption('div#jformplugin_id_chzn .chzn-results', 'Optimizer');
或者这个:
$I->click(['css' => 'div#jformplugin_id_chzn']);
$I->fillField(['xpath' => '//div[@id="jformplugin_id_chzn"]/div/div/input'], 'Optimizer');
$I->click(['xpath' => '//div[@id="jformplugin_id_chzn"]/div/ul/li[1]']);
什么都没有用。
以下是我试图访问的HTML代码:
<select id="jformplugin_id" name="jform[plugin_id]" style="display: none;">
<option value="" selected="selected">- Selection -</option>
<option value="10037">test3</option>
<option value="10038">test2</option>
<option value="10054">Optimizer</option>
<option value="10058">test1</option>
</select>
<div class="chzn-container chzn-container-single chzn-container-single-nosearch" title="" id="jformplugin_id_chzn"><a class="chzn-single" tabindex="-1"><span>- Selection -</span><div><b></b></div></a>
<div class="chzn-drop">
<div class="chzn-search"><input type="text" readonly=""></div>
<ul class="chzn-results">
<li class="active-result result-selected" style="" data-option-array-index="0">- Selection -</li>
<li class="active-result" style="" data-option-array-index="1">test3</li>
<li class="active-result" style="" data-option-array-index="2">test2</li>
<li class="active-result" style="" data-option-array-index="3">Optimizer</li>
<li class="active-result" style="" data-option-array-index="4">test1</li>
</ul>
</div>
</div>
答案 0 :(得分:0)
尝试这样的事情: $ I-&gt; executeJS(“document.querySelector('#jformplugin_id')。style.display = block;”);
答案 1 :(得分:0)
您不能在隐形元素上使用任何方法。更改选择值的唯一方法是执行Javascript,如下所示:
$I->executeJS('document.getElementById("jformplugin_id").value = 10054;');
顺便说一下,有很多选项的大选择用Javascript选择值比用内置方法selectOption快很多。