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

标签 php selenium selenium-webdriver webdriver codeception

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

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

screen shot

我尝试使用名为 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/

    相关文章:

    php - MySQL 中的 IF 语句,使用 THEN 和 ELSE

    java - 自动生成加特林场景

    ruby-on-rails - 使用 Capybara + Env.js 测试 JQuery UI 自动完成不起作用(使用 Selenium 可以)

    python - 在 selenium 中测试身份验证 UI

    php - 如何使 FileUpload 对象处理 Symfony2 中的多个文件?

    php - 删除第一次出现的子字符串之前的文本

    javascript - 无法使用 Selenium 单击按钮

    python-3.x - selenium.common.exceptions.ElementNotInteractableException : Message: element not interactable when clicking on an element using Selenium Python

    php - 将秒转换为天、小时、分钟和秒

    java - webdriver getCurrentUrl 在 URL 末尾添加符号 "/"