问题描述
我可以使用Selenium Standalone Chrome中的Behat / Mink设置日期时间表单字段的值,但不能使用Dmore Behat Chrome Extension设置。
我已经定义了这样一个步骤:
And I assign the date "yesterday" with timezone "Asia/Tokyo" for "edit-field-datetime-MYFIELD-0-value"
/**
* @Then I assign the date :date with timezone :timezone for :field
*
* Assign the specified date to the element with the given CSS.
*/
public function assertEnterDateForField($field,$timezone,$date_string) {
$date_field = $field . '-date';
$time_field = $field . '-time';
// Drupal stores timezones as UTC so we need the base time in UTC.
$datetime = new DateTime($date_string,timezone_open('UTC'));
// We need to convert the UTC time to the user's timezone.
// This is because when saving the entity,// Drupal will convert the value to UTC.
$datetime->setTimezone(timezone_open($timezone));
$date_output_string = $datetime->format('mdY');
$time_output_string = $datetime->format('hisA');
$datetime_debug_string = $datetime->format('Y-m-d\TH:i:sO');
$this->fillfield($time_field,$time_output_string);
$this->fillField($date_field,$date_output_string);
echo "Datetime $datetime_debug_string
Field set to
date: $date_output_string
time: $time_output_string";
}
在我的本地环境(运行lando容器的Standalone Chrome上,此代码按预期工作;日期/时间已为该字段正确设置。
但是,在我的测试服务器(Pantheon / CircleCI,运行Behat Chrome Extension)上,它不起作用。测试服务器上的代码输出的调试信息是正确的;例如:
│ Datetime 2020-08-13T09:00:00+0900
│ Field set to
│ date: 08132020
│ time: 090000AM
但是,日期/时间实际上并未填写。这是运行代码后的步骤的屏幕截图:
这是Drupal的HTML代码:
<div id="edit-field-datetime-review-target-0-value">
<div class="field js-form-item form-item js-form-type-date form-item-field-datetime-review-target-0-value-date js-form-item-field-datetime-review-target-0-value-date form-no-label">
<label class="label control-label visually-hidden" for="edit-field-datetime-review-target-0-value-date">
Date
</label>
<div class="control">
<input id="edit-field-datetime-review-target-0-value-date" class="form-date is-link input" title="Date (e.g. 2020-08-22)" max="2050-12-31" min="1900-01-01" name="field_datetime_review_target[0][value][date]" size="12" type="date" value="2020-08-22" data-drupal-selector="edit-field-datetime-review-target-0-value-date" data-drupal-date-format="Y-m-d" />
</div>
</div>
<div class="field js-form-item form-item js-form-type-date form-item-field-datetime-review-target-0-value-time js-form-item-field-datetime-review-target-0-value-time form-no-label">
<label class="label control-label visually-hidden" for="edit-field-datetime-review-target-0-value-time">
Time
</label>
<div class="control">
<input id="edit-field-datetime-review-target-0-value-time" class="form-time is-link input" title="Time (e.g. 15:19:19)" name="field_datetime_review_target[0][value][time]" size="12" step="1" type="time" value="15:19:04" data-drupal-selector="edit-field-datetime-review-target-0-value-time" />
</div>
</div>
</div>
因此,如何使用Dmore/Behat-chrome-extension
设置日期时间字段的值?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)