【问题标题】:Codeception check several elements with same locatorCodeception 检查具有相同定位器的多个元素
【发布时间】:2016-01-14 00:09:28
【问题描述】:

我的页面上有几个元素具有相同的定位器。 示例:

<div.test-info><a>Test1</a></div>
<div.test-info><a>Test2</a></div>
<div.test-info><a>Test3</a></div>
<div.test-info><a>Test4</a></div>

页面上可能有 20 个或更多元素。

在 python 中,我使用 FOR 循环对此进行了测试,该循环遍历元素数组,由“findElemenets”方法获取。

我的问题是我不知道如何使用 Codeception 来做到这一点。 我找到了方法 '_findElements' 但它返回 Facebook\WebDriver\Remote\RemoteWebElement 实例。

喜欢:

Array
  (
      [0] => Facebook\WebDriver\Remote\RemoteWebElement Object
          (
              [executor:protected] => Facebook\WebDriver\Remote\RemoteExecuteMethod Object
                  (
                      [driver:Facebook\WebDriver\Remote\RemoteExecuteMethod:private] => Facebook\WebDriver\Remote\RemoteWebDriver Object
                          (
                              [executor:protected] => Facebook\WebDriver\Remote\HttpCommandExecutor Object
                                  (
                                      [url:protected] => http://127.0.0.1:4444/wd/hub
                                      [curl:protected] => Resource id #326
                                  )

                              [sessionID:protected] => 109595b5-f094-4824-ac10-fc7d6353b799
                              [mouse:protected] => 
                              [keyboard:protected] => 
                              [touch:protected] => 
                              [executeMethod:protected] => Facebook\WebDriver\Remote\RemoteExecuteMethod Object
   *RECURSION*
                          )

                  )

              [id:protected] => 0
              [fileDetector:protected] => Facebook\WebDriver\Remote\UselessFileDetector Object
                  (
                  )

          )

      [1] => Facebook\WebDriver\Remote\RemoteWebElement Object
          (
              [executor:protected] => Facebook\WebDriver\Remote\RemoteExecuteMethod Object
                  (
                      [driver:Facebook\WebDriver\Remote\RemoteExecuteMethod:private] => Facebook\WebDriver\Remote\RemoteWebDriver Object
                          (
                              [executor:protected] => Facebook\WebDriver\Remote\HttpCommandExecutor Object
                                  (
                                      [url:protected] => http://127.0.0.1:4444/wd/hub
                                      [curl:protected] => Resource id #326
                                  )

                              [sessionID:protected] => 109595b5-f094-4824-ac10-fc7d6353b799
                              [mouse:protected] => 
                              [keyboard:protected] => 
                              [touch:protected] => 
                              [executeMethod:protected] => Facebook\WebDriver\Remote\RemoteExecuteMethod Object
   *RECURSION*
                          )

                  )

              [id:protected] => 1
              [fileDetector:protected] => Facebook\WebDriver\Remote\UselessFileDetector Object
                  (
                  )

          )

  )

我该如何处理这些数据,或者有其他好方法可以解决我的问题吗?

【问题讨论】:

    标签: php webdriver codeception


    【解决方案1】:

    如果要获取div的内容,使用grabMultiple方法,它返回字符串数组。

    $I->grabMultiple('div.test-info a')

    【讨论】:

    • 反正我不能用元素操作。此方法仅返回文本,而不是元素定位器或对象。但它也可以提供帮助。谢谢。
    【解决方案2】:
    $elements = $I->_findElements('div.test-info a');
    foreach($elements as $element)
    {
      *do some testing* for example $element->click();
    }
    

    可用于 RemoteWebElement 的方法,请参阅http://facebook.github.io/php-webdriver/classes/RemoteWebElement.html

    【讨论】:

      【解决方案3】:

      这是可行的解决方案:

      $allLinks = $I->grabMultiple('.readmore'); //grab all clickable links
      
      for( $i = 0; $i<sizeof($allLinks); $i++ ) { //iterate through a loop
      
      $I->click($allLinks[$i]); //click each link 
      
      }
      

      【讨论】:

        猜你喜欢
        • 2015-10-04
        • 2020-05-03
        • 2018-04-04
        • 1970-01-01
        • 2021-08-15
        • 2016-10-01
        • 2017-06-09
        • 2014-07-05
        相关资源
        最近更新 更多