【问题标题】:Codeception accessing Chosen selectCodeception 访问选择的选择
【发布时间】:2017-01-13 17:47:28
【问题描述】:

当使用 Chosen 时,选择元素会被隐藏并且不能被代码接收选择。我试过这样:

$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>

【问题讨论】:

    标签: php testing codeception


    【解决方案1】:

    试试这样的: $I->executeJS("document.querySelector('#jformplugin_id').style.display = block;");

    【讨论】:

      【解决方案2】:

      您不能对不可见元素使用任何方法。更改选择值的唯一方法是执行 Javascript,如下所示:

      $I->executeJS('document.getElementById("jformplugin_id").value = 10054;');
      

      顺便说一句,在有很多选项的大选择上,使用 Javascript 选择值比使用内置方法 selectOption 快很多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-05
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 2012-02-15
        相关资源
        最近更新 更多