在 Codeception 测试(webdriver)中创建可点击节点(web 元素)列表
Create a list of clickable nodes (web elements) in Codeception test (webdriver)
我在 Codeception 验收测试中使用 WebDriver 模块。
在测试中,我需要从网页创建节点(网络元素)列表,然后单击 foreach
循环中的每个节点。节点是主要的导航菜单项。查看屏幕截图。
我尝试使用一个名为 grabMultiple("//nav[@class='nav-container']/ul/li/a")
的内置方法,但它 returns 一个名称列表("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\acceptance1_CategoryFlowCept.php)
步骤我点击"READY TO WEAR"
失败 Link 或按钮或 CSS 或未找到具有 'READY TO WEAR' 的 XPath 元素。
场景步骤:
- $I->点击("READY TO WEAR")
- $I->grabMultiple("//导航[@class='nav-container']/ul/li/a")
- $I->等待(1)
您可以获取 class 属性并将其用于点击。
$linkClasses = $I->grabMultiple("//nav[@class='nav-container']/ul/li/a", 'class');
foreach ($linkClasses as $linkClass) {
$I->click(['class' => $linkClass]);
}
根据 Naktibalda 的建议,我创建了以下代码并且它适用于我:
$mainNavLinks = $I->grabMultiple("//nav[@class='nav-container']/ul/li/a", 'href');
foreach ($mainNavLinks as $link) {
$I->amOnUrl($link);
}
我在 Codeception 验收测试中使用 WebDriver 模块。
在测试中,我需要从网页创建节点(网络元素)列表,然后单击 foreach
循环中的每个节点。节点是主要的导航菜单项。查看屏幕截图。
我尝试使用一个名为 grabMultiple("//nav[@class='nav-container']/ul/li/a")
的内置方法,但它 returns 一个名称列表("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\acceptance1_CategoryFlowCept.php)
步骤我点击"READY TO WEAR" 失败 Link 或按钮或 CSS 或未找到具有 'READY TO WEAR' 的 XPath 元素。
场景步骤:
- $I->点击("READY TO WEAR")
- $I->grabMultiple("//导航[@class='nav-container']/ul/li/a")
- $I->等待(1)
您可以获取 class 属性并将其用于点击。
$linkClasses = $I->grabMultiple("//nav[@class='nav-container']/ul/li/a", 'class');
foreach ($linkClasses as $linkClass) {
$I->click(['class' => $linkClass]);
}
根据 Naktibalda 的建议,我创建了以下代码并且它适用于我:
$mainNavLinks = $I->grabMultiple("//nav[@class='nav-container']/ul/li/a", 'href');
foreach ($mainNavLinks as $link) {
$I->amOnUrl($link);
}