0


我一直在寻找如何迭代表的许多不同示例。

如果我将下面的代码用于硒,我会得到我想要的。

driver.findElement(By.xpath("//td[contains(.,'Apple Pomace')]"));

虽然我想改为迭代代码并找到以下值:

<td class="ng-binding">Apple Pomace</td>

注意有两个地方有苹果渣

看图片

有我的桌子:

<div class="col-md-8 col-md-offset-2 col-sm-10 col-sm-offset-1">
    <h3 ng-show="searchQuery" class="page-header page-header-sm"><span translate="TITLE_SEARCH_RESULTS" class="ng-scope">Search Results</span> <span class="label label-default ng-binding" ng-bind-html="searchQuery">Apple Pomace</span></h3>
    <h3 ng-show="!searchQuery" class="page-header page-header-sm ng-scope ng-hide" translate="TITLE_ALL_PRODUCTS">All Products</h3>

    <div class="alert-info ng-hide" ng-show="confirmation">
        <p class="ng-binding"></p>
    </div>

    <table class="table table-striped table-bordered table-condensed">
        <tbody><tr>
            <th translate="LABEL_IMAGE" class="ng-scope">Image</th>
            <th translate="LABEL_PRODUCT" class="ng-scope">Product</th>
            <th translate="LABEL_DESCRIPTION" class="ng-scope">Description</th>
            <th translate="LABEL_PRICE" class="ng-scope">Price</th>
            <th></th>
        </tr>
        <!-- ngRepeat: product in products --><tr data-ng-repeat="product in products" class="ng-scope" style="">
            <td><img src="/public/images/products/apple_pressings.jpg" class="img-responsive img-thumbnail" style="width: 200px" ng-click="showDetail(product.id)"></td>
            <td class="ng-binding">Apple Pomace</td> //here is the item I want to fetch  'Apple Pomace'
            <td><div ng-bind-html="product.description" class="ng-binding">Finest pressings of apples. Allergy disclaimer: Might contain traces of worms. Can be <a href="/#reccyle">sent back to us</a> for recycling.</div></td>
            <td class="ng-binding">0.89</td>
            <td>
                <div class="btn-group">
                    <a class="btn btn-default btn-xs" ng-click="showDetail(product.id)"><i class="fa fa-eye"></i></a>
                    <a class="btn btn-default btn-xs ng-hide" ng-click="addToBasket(product.id)" ng-show="isLoggedIn()"><i class="fa fa-cart-plus"></i></a>
                </div>
            </td>
        </tr><!-- end ngRepeat: product in products -->
    </tbody></table>

</div>

我做了以下代码,但我认为它不正确。

 element.all(by.css('.ng-binding')).each(function(element, index)
             {
             element.getText().then(function (text)
             {


             });
             })

请注意,我在两个地方得到了“Apple Pomace”,这就是为什么迭代 td-class 'ng-binding' 很重要。

有人可以帮我吗

先感谢您

4

1 回答 1

0

如果您只想访问 td,可以使用以下命令:

element(by.cssContainingText('.table td', 'Apple Pomace'))

如果您想按产品过滤表中的行并获取可以使用以下代码片段的元素:

element.all(by.repeater('product in products')).filter(function(elem, index) {
  return elem.element(by.cssContainingText('td', 'Apple Pomace')).isPresent();
}).first();
于 2017-11-18T14:57:33.680 回答