如何使用Codeception从Datepicker中选择日期

时间:2018-03-29 17:26:00

标签: codeception

我想从Datepicker工具中选择一个自定义日期..所以任何人都知道如何在Codeception中选择日期(遵循PHP语法)。 注意:我们使用的是Selenium独立服务器。 请帮我解决这个问题

2 个答案:

答案 0 :(得分:0)

如果faker lib没有帮助,你必须实际点击日期选择器而不是输入日期,你可以在这个逻辑中做一些事情:

 $this->click(your_locator_for_datepicker_button);
 $this->clickDateOnDatePicker($date)

其中clickDateOnDatePicker可以=>>

public function clickDateOnDatePicker($date)
    {
        list($month, $day, $year) = explode('/', $date);
        $element = sprintf(your_locator_for_datepicker_button_within_modal, $month - 1, $year, ltrim($day, '0'));
        $this->clickElement($element);
        $this->waitForElementNotVisible($element);
        return $this;
    }

答案 1 :(得分:0)

1:定义日期选择器的定位器

e.g。

public static $datePickerDate = '//*[@id="ui-datepicker-div"]//tbody//td[@data-month="%s" and @data-year="%s"]/a[normalize-space(.)="%s"]';

2:定义步骤方法

    public function clickDateOnDatePicker($date, $inputElement = '')
    {
        if (!empty($inputElement)) {
            $this->click($inputElement);
        }
        list($month, $day, $year) = explode('/', $date);
        $element = sprintf(BasePage::$datePickerDate, $month - 1, $year, ltrim($day, '0'));
        $this->clickElement($element);
        $this->waitForElementNotVisible($element);
        return $this;
    }

3:在你的Cest文件中使用它:

public function myTest($date)
{
    .
    .
    .
    $this->clickDateOnDatePicker($date);
    return $this;
}