在Codeception测试(webdriver)中创建可点击节点(web元素)列表

时间:2016-04-18 18:15:41

标签: php selenium selenium-webdriver webdriver codeception

我在Codeception验收测试中使用WebDriver模块。

在测试中,我需要从网页创建节点列表(Web元素),然后单击foreach循环中的每个节点。节点是主要的导航菜单项。见屏幕截图。

screen shot

我尝试使用名为grabMultiple("//nav[@class='nav-container']/ul/li/a")的内置方法,但它会返回一个名单列表(" Ready to Wear"等)和{{1} }方法无法点击此列表中的此类元素。

在Codeception中是否有任何方法可以创建可点击的节点列表?

当我使用以下代码时:

click

我收到错误:

1)无法检查101_CategoryFlowCept中可以访问的主类别(tests \ acceptance \ _101_CategoryFlowCept.php)

步骤我点击"准备好穿"  失败链接或按钮或CSS或XPath元素与“准备好穿'没找到。

场景步骤:

  1. $ I->点击("准备好穿")
  2. $ I-> grabMultiple(" // NAV [@class =' NAV-容器'] / UL / LI / A&#34)
  3. $ I->等待(1)

2 个答案:

答案 0 :(得分:1)

您可以获取类属性并使用它们进行单击。

$linkClasses = $I->grabMultiple("//nav[@class='nav-container']/ul/li/a", 'class');
foreach ($linkClasses as $linkClass) {
  $I->click(['class' => $linkClass]);
}

答案 1 :(得分:0)

在建议Naktibalda之后,我创建了以下代码,它对我有用:

$mainNavLinks = $I->grabMultiple("//nav[@class='nav-container']/ul/li/a", 'href'); 
foreach ($mainNavLinks as $link) { 
    $I->amOnUrl($link); 
}