decimal count = selenium.GetXpathCount("//div[@id='eventContent']");
Это вернет счетчик div
с id
, равным eventContent
- есть только один div
, как этот, поэтому вы получаете счет 1 (переменные подсчетаобычно int
с, а не decimal
с, случайно).
Если вы хотите, чтобы количество содержало div
с, используйте
int count = selenium.GetXpathCount("//div[@id='eventContent']/div");
Это будет считать число div
детей из div
с id
из eventContent
.Это должно вернуть 2, как вам нужно.
Что касается ваших GetText
примеров, я думаю, GetText
вернет только текст first узла, который выбрал аргумент xpath.Таким образом, с
selenium.GetText("//div[@id='eventContent'][1]")
вы получите весь текст parent div
, который, естественно, содержит все дочерние элементы div
s, но с
selenium.GetText("//div[@id='eventContent'][1]/div")
Вы получаете текст только первый ребенок div
.Этот xpath выбирает все дочерние элементы div
s, но GetText
, я полагаю, работает только с одним элементом.Если вы хотите просмотреть текст каждого дочернего элемента div
по очереди, вам сначала нужно получить счетчик дочерних элементов div
s, а затем использовать цикл for
для получения каждого из них по очереди:
for(int i = 1; i <= count; ++i)
{
string childXpath = "//div[@id='eventContent']/div[" + i + "]";
string eventText = selenium.GetText(childXpath);
// Processing of eventText
}
Цикл for
и ручная обработка xpath необходимы здесь (а не точнее foreach
), так как я считаю, что у Selenium нет способа получить xpath и вернуть коллекцию элементов.