验收测试 - WebDriver - 注意隐藏元素!

  • 作者:KK

  • 发表日期:2015.12.13


这个真是很重要,你务必知道!

假设 #menu1 菜单是划过 #xxx 区域才会显示出来,划开后就会自动隐藏,那么在未划过的时候,不可见,如果你使用

$I->click('#menu1');

这样是不会发生任何页面跳转或菜单效果的!因为这是模拟真人操作浏览器,你看不到菜单的时候点不到,要划过去让它显示出来才能点,所以机器和你也一样

于是你应该像这样先划过 #xxx 区域让它出来了再执行点击的哦!

$I->moveMouseOver('#xxx');	//模拟划过
$I->seeElement('#menu1');	//同时,显示了才可见,隐藏不能see,其它see方法都是
$I->click('#menu1');

这里还没完,补充一下,你可以通过第2和3个参数微调模拟划过的位置

$I->moveMouseOver('#xxx', 10);	//在x轴上向右偏移10个像素点,负数向左
$I->moveMouseOver('#xxx', 0, 20);	//在y轴上向下偏移20个像素点,负数向上
$I->moveMouseOver('#xxx', 30, 30);	//你懂的

当你以后运行时老是发现点击/断言不到一个元素时,请检查这个元素是不是已经显示出来了!