单击带有Codeception的日期日历

时间:2018-02-07 08:44:25

标签: php selenium codeception

用户首次点击“到达日期”,第二次点击“离开日期”。

这是我的代码。

//Change Arriving Date
    $dateFrom = date( 'j'); // Get today's Day
    $dateTo = date('j', strtotime("+2 day")); // Add x Days from now

    $I->click('.js-date-view');
    $I->waitForElement('.mod-3rd-level-navi__anchor');
    $I->click($dateFrom);
    $I->wait(1);
    $I->moveMouseOver($dateTo);
    $I->click($dateTo);
    $I->wait(1);

    //Submit
    $I->click('.js-send-form.btn-primary');

测试在$dateTO失败,但在$dateFrom时失败。 Baiscly它不想点击Leaving-Date。

步骤 12失败

 12. $I->moveMouseOver("11") at tests/acceptance/../../changeDetailsCest.php:42
 11. $I->wait(1) at tests/acceptance/.../.../changeDetailsCest.php:41
 10. $I->click("7") at tests/acceptance/.../.../changeDetailsCest.php:40
 9. $I->waitForElement(".mod-3rd-level-navi__anchor") at tests/acceptance/.../.../changeDetailsCest.php:39
 8. $I->click(".js-date-view") at tests/acceptance/.../.../changeDetailsCest.php:38
 7. $I->wait(1) at tests/acceptance/.../.../changeDetailsCest.php:32

错误

[MalformedLocatorException] CSS or XPath locator is malformed: 11

1 个答案:

答案 0 :(得分:1)

moveMouseOver采用的参数与click不同。

click尝试按文字查找元素 -

  

如果给出模糊定位器,将搜索页面以查找与定位器字符串匹配的按钮,链接或图像。对于按钮,将搜索“value”属性,“name”属性和内部文本。对于链接,将搜索链接文本。对于图像,搜索任何父链接的“alt”属性和内部文本。

moveMouseOver不按文字搜索,您必须为其提供有效的CSS或XPath选择器。 示例:$I->moveMouseOver('#date-11')

如果您使用它,则可以使用clickWithLeftButton方法,而不是moveMouseOver + click的组合。