我在 Codeception 验收测试中使用 WebDriver 模块。
在测试中,我需要从网页创建节点(Web 元素)列表,然后单击 foreach
循环中的每个节点。节点是主要的导航菜单项。请参阅屏幕截图。
我尝试使用名为 grabMultiple("//nav[@class='nav-container']/ul/li/a")
的内置方法,但它返回名称列表(“Ready to Wear”等),click
方法无法单击此列表中的此类元素。
Codeception中有什么方法可以创建可点击的节点列表吗?
当我使用以下代码时:
$itemsOfMainNav = $I->grabMultiple("//nav[@class='nav-container']/ul/li/a");
foreach($itemsOfMainNav as $item){
$I->click($item);
}
我收到错误:
1) 无法检查 101_CategoryFlowCept (tests\acceptance\101_CategoryFlowCept.php) 中是否可访问主要类别
第I步点击“READY TO WEAR” 失败 未找到带有“READY TO WEAR”的链接或按钮或 CSS 或 XPath 元素。
场景步骤:
- $I->click("准备穿")
- $I->grabMultiple("//nav[@class='nav-container']/ul/li/a")
- $I->等待(1)
最佳答案
您可以获取类属性并使用它们进行点击。
$linkClasses = $I->grabMultiple("//nav[@class='nav-container']/ul/li/a", 'class');
foreach ($linkClasses as $linkClass) {
$I->click(['class' => $linkClass]);
}
关于php - 在 Codeception 测试 (webdriver) 中创建可点击节点(Web 元素)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36701426/