1. Относительный Xpath
Часто необходимо найти элемент с помощью Xpath внутри уже найденного вебдрайвером WebElement-а. Используйте для этого относительный Xpath (точка вначале выражения).Вот так:
var questionDiv = driver.FindElement(By.XPath("//div[@class='ac-item']"));
questionDiv.FindElement(By.XPath(".//label[@class='ac-title']")).Click();
2. Несколько примеров работы функции contains() в Xpath выражениях:
//span[contains(.,'Как узнать информацию')]
-Будут найдены элементы span, в тексте которых содержится строка 'Как узнать информацию'.
//label[contains(@class,'ac-title')]
-Будут найдены все элементы label, содержащие в названии класса строку ac-title.
//label[contains(span,'Как узнать информацию')]
-Будут найдены все элемент label, у которых есть дочерний элемент span, содержащий в тексте строку 'Как узнать информацию'.
//label[contains(@class,'ac-title') and contains(span,'Как узнать информацию')]
-Будут найдены все элементы label, у которых есть класс, содержащий в названии строку 'ac-title' и дочерний элемент span, содержащий в тексте строку 'Как узнать информацию'.3. Задача - получить текст элемента, который есть в DOM-модели, но не виден.
Использование функции Text() не решает задачу - результат будет null.Можно выкрутиться c помощью GetAttribute("textContent"):
driver.FindElement(By.XPath("//label[@class='ac-title']")).GetAttribute("textContent");
Комментариев нет:
Отправить комментарий