Применить XPATH относительно определенного элемента

csharp
xpath
locators
Теги: #<Tag:0x00007fedb87de968> #<Tag:0x00007fedb87de828> #<Tag:0x00007fedb87de670>

(Тимофей) #1

Проблема: Пытаюсь применить XPATH только к определенному элементу, применяется ко всей странице.

Задача: есть страница с несколькими элементами XPATH1. Часть из них содержит элементы XPATH2.
Есть эти элементы есть - совершаем одну проверку, если нет -другую.

Мой код:

        private string XPath1= "//div[contains(@class, 'class1')]";
        private string XPath2= "//div[contains(@class, 'element1')]";

        foreach (var element in _driver.FindElements(By.XPath(XPath1)))
        {                
            if (element.FindElements(By.XPath(XPath2)).Count > 0)
            {
                Assert1();
            }
            else
            {
                Assert2();
            }
        }

(Alexandr D ) #2

Для использования XPath от конкретного элемента, нужно в начале написать точку:

".//div[contains(@class, 'element1')]"

Точка обозначает, что искать элементы нужно внутри родителя.