我有问题。当我使用Laravel浏览器测试时,通常使用以下方法测试日期字段:
->script([
"document.querySelector('#date_of_show').value = '2019-01-01'",
]);
有效。但是,当id的名称包含方括号时,选择器找不到它。示例:
->script([
"document.querySelector('#items[0][date_of_show]').value = '2019-01-01'",
]);
我尝试了很多样式,但是我无法解决。 有人可以帮我吗?
谢谢
更新: 浏览器方法:
$this->browse(function(Browser $browser) use ($user, $buyer, $buyerSearch) {
$browser
->loginAs($user)
->visit(route('buyer-search-properties.index', [$buyer, $buyerSearch]))
->check('items[0][check]')
->select('action', 'fixing-show')
->waitForText('Fixing Shows')
->script([
"document.querySelector('#items\\[0\\]\\[date_of_show\\]').value = '2019-01-01'",
]);
$browser
->click('Create');
});
答案 0 :(得分:0)
您需要转义括号。你可以试试看吗?
->script([
"document.querySelector("#items\\[0\\]\\[date_of_show\\]").value = '2019-01-01'",
]);
编辑:下面是一个fiddle,用于演示实际操作。
编辑:我可能缺少一些东西,但是以下方法可以工作吗?
$browser
->loginAs($user)
->visit(route('buyer-search-properties.index', [$buyer, $buyerSearch]))
->check('items[0][check]')
->select('action', 'fixing-show')
->waitForText('Fixing Shows')
->value('#items\\[0\\]\\[date_of_show\\]', '2019-01-01');
答案 1 :(得分:0)
我解决了!可行!
->script([
"document.querySelector('[name=\"items[0][date_of_show]\"]').value = '2018-12-20'",
]);