黄昏:输入类循环无法使用sendKeys

时间:2019-12-06 19:43:54

标签: laravel css-selectors laravel-dusk

我无法在由data属性确定的特定输入框中输入文本。同一类可能会有数十个输入,因此我不希望在整个页面上添加dusk='xxxx'

为了提高路由和服务器端的效率,AJAX函数从输入数组和路由中拉出一种类型,并将其转换为分支动作的函数。

刀片代码

{!! Form::text('question[]', null, 
         ['class'=>'form-control actionChange', "data-id"=>$question->id, "data-type"=>'question']) !!}

该页面以其他类型不同的其他问题开头,因此我尝试使用nth-child(x)来抓住模式中的选择器,但没有成功。我也尝试过使用$browser->script()

阅读几个类似的问题,例如this one,看来模态内的循环可能是最好的方法。此方法将选择器正确分配给循环变量$input。它可以正确clear()的数据,并且我已经使用click()测试了类似的代码,并且可以成功运行。但是,它将在输入中输入数据。 type()keys()似乎不适用于RemoteWebElement,因此我认为输入数据的唯一选择是sendKeys()

黄昏测试代码:

$browser->assertPathIs('/notice')
        ->whenAvailable('.modal', function($modal) use($browser) {
           $modal->assertSee('Survey for:')
             ->waitFor('#heading')
             // WORKS fine
             ->keys('#heading', 'Edited Heading for Survey', '{enter}')
             ->waitFor('.actionSurvey');

                // Edit a question -- NOT WORKING
                foreach ($browser->elements('.actionChange') as $input) {
                    $dataType = $input->getAttribute('data-type');
                    if($dataType === 'question') {
                        $input->clear()  // WORKS Fine 
                            ->sendKeys('Edited_Question') // NOT successful
                        break;

我尝试使用和不使用clear()方法,以及模态循环内外的各种选择器选择。对于script()也是一样,也尝试使用$modal变量来获取元素,但这只是一个猜测,因为此时我有点不理解。

我可能会提出一些基本的要求,但我不明白为什么一种方法有效,而另一种却不在同一句柄上。

0 个答案:

没有答案