Создать отношения между 2 tds- Selenium Java - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь собрать значения - имя, количество, цену за килограмм и общее количество в HashMap. Я могу использовать следующие 2 элемента, чтобы собрать имя и количество

private By productName = By.xpath("//td//p[@class='product-name']");
private By productQuantity = By.xpath("//td//p[@class='quantity']");

Проблема : Когда я пытаюсь // td // p [@ class = 'amount'], он заканчивается выбором 4. Несколько вариантов, которые я экспериментировал, это выбрать 2-й вариант, связанный с названием продукта, который даст мне цену за кг //td//p[@class='product-name']/following-sibling:://td[2] или //td//p[@class='product-name']/ancestor::td

Ни один из них не работает. Любая подсказка, что я могу использовать Вот? Заранее спасибо за ваше время.

Источник:

<tr>
    <td><img class="product-image" src="./images/cucumber.jpg" style="width: 50px; height: 50px;"></td>
    <td>
        <td>
            <p class="product-name">Cucumber - 1 Kg</p>
        </td>
        <p class="quantity">2</p>
    </td>
    <td>
        <p class="amount">48</p>
    </td>
    <td>
        <p class="amount">96</p>
    </td>
</tr>

1 Ответ

0 голосов
/ 23 апреля 2020

Если вы хотите получить значение 96, используйте следующее xpath

//td[.//p[@class='product-name']]/following::td[2]/p

ИЛИ

//td[.//p[@class='product-name']]/following-sibling::td[2]/p
...