我找不到正确的元素

时间:2019-09-10 14:59:46

标签: selenium-webdriver jasmine protractor angular-elements

我单击排序按钮,获取所有价格,并且我需要确保元素按价格正确排序。因此,我需要获取价格值=“ 377”,价格值=“ 1288”,价格值=“ 1688”等,但是我无法获取正确的元素。

<div class="ssl-price-box">
    <price value="377" units="/yr" class="lg-price ng-isolate-scope">
        <span class="price">
            <span class="currency-icon">$</span>
            <span class="integer ng-binding">3.</span>
            <span class="cent ng-binding">77</span>
            <span class="units">/yr</span>
        </span>
    </price>
    <!-- ngIf: product.prices.max.certIsPromo -->
</div>
<div class="ssl-content">
    <div class="ssl-price-box">
        <price value="1288" units="/yr" class="lg-price ng-isolate-scope">
            <span class="price">
                <span class="currency-icon">$</span>
                <span class="integer ng-binding">12.</span>
                <span class="cent ng-binding">88</span>
                <span class="units">/yr</span>
            </span>
        </price>

我尝试搜索css,className,xpath,repearet,我想如果它们都是相同的中继器就可以了。 我的代码:

const allSSLList = $$('.ssl-price-box');
const newAllSSLList = allSSLList.sort((a, b)=>a-b));

expect(await allSSLList).toBe(massiveOfElements)

我只需要获取价格,例如“ 3.77”,“ 12.88”,“ 16.88”等,然后验证它们是否为ASC排序,但我得到了所有价格,甚至是旧价格。我只需要到达哪里

<span class="price">
    <price value="377" units="/yr" class="lg-price ng-isolate-scope">

期望['$ 3.77 / YR','$ 12.88 / YR $ 26.99 / YR','$ 16.88 / YR $ 31.99 / YR','$ 19.66 / YR $ 35.88 / YR','$ 30.88 / YR $ 44.99 / YR','$ 38.88 / YR $ 95.99 / YR','$ 59.99 / YR','$ 68.88 / YR $ 138.99 / YR','$ 70.88 / YR $ 96.99 / YR','$ 78.19 / YR','$ 78.19 / YR','$ 134.99 / YR','$ 138.88 / YR $ 215.89 / YR']为“ smth”。   堆栈:

1 个答案:

答案 0 :(得分:-1)

从提供的HTML看来,CSS选择器div.ssl-price-box > price会为您提供所需的所有价格要素。从那里,您可以使用.getAttribute()从每个元素中将value属性提取为“ 377”,“ 1288”等。然后,您需要convert those string values into numberscopy that arraysort the second arraycompare to the first list来验证两个列表是否已排序。