【问题标题】:How to use findElements in Codeception using php如何使用 php 在 Codeception 中使用 findElements
【发布时间】:2015-02-11 12:39:06
【问题描述】:

我有一个页面,其中包含一个包含行数的表格。

我需要解决我需要该表中的行数的逻辑

在 Google 中搜索后,我发现 findElements 可以完成我的工作。当我尝试这种方法时,我遇到了一个致命错误:

Fatal error:

Call to a member function findElements() on a non-object webDriver->findElements(\WebDriverBy::id("table-padding"));.

【问题讨论】:

    标签: php codeception


    【解决方案1】:

    我刚刚看到你的问题,因为我正在寻找同样的东西,我能够以这种方式做到这一点:

    $I->executeInSelenium(function(\Facebook\WebDriver\Remote\RemoteWebDriver $webdriver){ //Store current window id
    
        global $meetings;
        $meetings = $webdriver->findElements(WebDriverBy::cssselector('.today'));
    
    });
    

    希望这对您的项目有所帮助。

    【讨论】:

    • 谢谢它的工作,你能帮我知道 $meetings 是否存储了所有获取的元素,那么如何对每个元素执行点击?
    【解决方案2】:

    最好用$I->grabMultiple('.items', 'some_attribute')

    https://codeception.com/docs/modules/PhpBrowser#grabMultiple


    另一种方法是使用DOMDocument

    $dom = new \DOMDocument();
    @$dom->loadHTML($I->grabPageSource());
    $xpath = new \DOMXPath($dom);
    $elements = $xpath->query('.items');
    

    【讨论】:

      【解决方案3】:
      $els = $this->getModule('WebDriver')->_findElements('.items');
      

      _findElements

      隐藏的 API 方法,预计将在 Helper 类中使用

      使用可用的 Codeception 定位器类型定位元素:

      XPath CSS 严格定位器

      docs 中查看更多信息

      【讨论】:

        猜你喜欢
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-08
        • 1970-01-01
        • 2017-09-17
        相关资源
        最近更新 更多