【问题标题】:Select an option in a dynamic select with codeception?在带有代码接收的动态选择中选择一个选项?
【发布时间】:2013-06-29 03:15:31
【问题描述】:
<select>
    <option value=''>-- Select an Option --</option>
    @foreach ($options as $option)
        <option value='{{ $option->value }}'>{{ $option->name }}</option>
    @endforeach
</select> 

选择第一个动态选项

【问题讨论】:

    标签: codeception


    【解决方案1】:
    $option = $I->grabTextFrom('select option:nth-child(2)');
    $I->selectOption("select", $option);
    $I->click("Submit");
    

    【讨论】:

    • 有没有办法检测可用选项的数量?
    • 请注意,您可以使用“select option:last-child”选择最后一个孩子,并且可以使用“select option:nth-last-child”从选项列表的末尾倒数(-2)' 是倒数第二个项目,等等。
    • 另外请注意,对于具有多个
    【解决方案2】:

    在开始使用 Codeception 时,我经常遇到同样的问题。使用推荐的答案,我在我的 AcceptanceTester 类中创建了一个辅助函数,以使这更容易一些。

    public function selectFromDropdown($selector, $n)
    {
        $option = $this->grabTextFrom($selector . ' option:nth-child(' . $n . ')');
        $this->selectOption($selector, $option);
    }
    

    其中$n 是选项列表中的位置。

    那么你所要做的就是这样称呼它:

    $I->selectFromDropdown('select', 1);
    

    这在具有多个选择的页面上一直对我有用,这些选择基于上一个选择的选定选项加载其选项列表。

    【讨论】:

      【解决方案3】:

      对不起,我没有提交按钮,在我的情况下,我必须选择下拉元素,并且需要以某种方式告诉 codeception 完成选择。目前我可以选择但该选择不可见,因为我认为选择不知何故没有完成。下面是我选择元素的代码。

      $I->selectOption('//*[@class="ng-scope" and @ng-controller="dataIsland"]/*[local-  name()="select"]','partlycloudy');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-23
        • 1970-01-01
        • 1970-01-01
        • 2018-08-17
        • 2013-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多