【发布时间】:2014-10-17 06:58:40
【问题描述】:
我正在为 Mojolicious 应用程序编写一个测试,它会发送一些 HTML 表单数据,然后检查它们是否出现在后续的 get 请求中。
$t->post_ok('/intern/offer/edit' => form => {
'angebotsdatum' => '2014-02-22',
'gastname' => 'Hansi Hinterseer',
'einmalkosten' => '128.00',
'tage' => '9',
'ankunft' => '2014-01-01',
'gesamtpreis' => '764.00',
'abfahrt' => '2014-01-10',
'tagespreis' => '70.71',
'apartments_id' => 'HAG28',
'id' => '1',
'aufenthaltspreis' => '636.39'
}
)
->status_is(200)
->content_like( qr/Angbot bearbeiten/ )
;
$t->get_ok('/intern/offer/edit/1')
->status_is(200)
->text_like('html body h2' => qr/Intern - Angebote/ )
->text_like('html body h3' => qr/Angbot bearbeiten/ )
->text_is('html body form div#adatum label' => 'Angebotsdatum:' )
->text_is('html body form div#adatum input#angebotsdatum value' => '2014-02-22' )
;
不幸的是,最后一次对输入元素值的测试失败了,因为返回的值总是空的。表单-label(此处为“Angebotsdatum:”)的测试成功。
如何从 HTML 表单中选择并取回输入元素 value?
表单的 HTML 代码是:
<div id="adatum">
<label>Angebotsdatum:</label>
<input type="text" name="angebotsdatum" value="2014-02-22" id="angebotsdatum">
</div>
这是测试输出:
# Failed test 'exact match for selector "html body form div\#adatum input[name=angebotsdatum] value"'
# at t/1210-workflow_booking.t line 80.
# got: ''
# expected: '2014-02-22'
所以我们可以清楚地看到,CSS 选择器返回空值。
【问题讨论】:
标签: html perl css-selectors mojolicious