验收测试 - 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); //你懂的
当你以后运行时老是发现点击/断言不到一个元素时,请检查这个元素是不是已经显示出来了!