Я использую xpath webdriver, чтобы найти div в коде, и мне нужно получить данные о каждом узле этого div, но этого не происходит.
HTML:
<div class="elements">
<div class="element"><div class="title">Title A</div></div>
<div class="element"><div class="title">Title B</div></div>
<div class="element"><div class="title">Title C</div></div>
</div>
Код PHP:
$elements = array();
$data = $driver->findElements(WebDriverBy::xpath("//div[@class='elements']//div[@class='element']"));
foreach ($data as $i => $element) {
$elements[$i]["title"] = $element->findElement(WebDriverBy::xpath("//div[@class='title']"))->getText();
}
Result Array $ возвращаемых элементов:
Array
(
[0] => Array
(
[title] => Title A
)
[1] => Array
(
[title] => Title A
)
[2] => Array
(
[title] => Title A
)
)
Приведенный выше скрипт возвращает заголовок A только 3 раза. Мне нужно, чтобы он работал так, как будто в xPath [x] есть цифра. Например:
(//div[@class='elements']//div[@class='element'])[1]//div[@class='title']
для заголовка A (//div[@class='elements']//div[@class='element'])[2]//div[@class='title']
для заголовка B (//div[@class='elements']//div[@class='element'])[3]//div[@class='title']
для заголовка C
Я не могу использовать цифры, потому что xPath слишком велик и может испортить кодlot.
Конечно, правильный узел xPath в foreach не должен был работать?