Привет, форумчане! Снова нужна ваша помощь. Есть дерево меню,
http://joxi.ru/J2beaDQFkYzvm6
По xpath (.//*[@name='org_struct_admin1']//table/tbody/tr/td[1]/img) нахожу все элементы которые мне нужны,
клик делаю если стиль соответствует закрытому меню.
Нужно раскрывать все элементы, что бы просмотреть содержимое и найти нужное.
Сделал вот такую конструкцию:
public void openStructureTree(){ List<WebElement> elements=driver.findElements(By.xpath(".//*[@name='org_struct_admin1']//table/tbody/tr/td[1]/img")); for (WebElement element:elements){ String opentree= element.getAttribute("style"); System.out.println("Значение для элементов: "+element.getAttribute("style")); if (opentree.equals("width: 16px; height: 16px; background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAX0lEQVR42t2TwQkAMQgE07w95JtPIKWkCsGfEH2kgQ25EhQO7qaAYdHdgiTlx4I5J/becUHvHWMMiEhcYGZorYGZY4LLWgu1Vrh7THBRVRDRk+jdBOkbpL6Q7sF3tnAAAyDoFbr+8FgAAAAASUVORK5CYII=\") 0px 0px no-repeat;")) { click(By.xpath(".//*[@name='org_struct_admin1']//table/tbody/tr/td[1]/img")); } } }
Понятное дело, нажимается первый найденный элемент.
Проблема в том, что каждое меню это добавление новых div, например
Первый элемент - .//*[@name='org_struct_admin1']/div[5]/div/div[2]/table/tbody/tr/td[1]/img
Второй элемент- .//*[@name='org_struct_admin1'']/div[5]/div/div[2]/div/div/table/tbody/tr/td[1]/img
Следовательно не получится замутить что-то вроде div["+i+i"]
Понимаю, что нужно записать найденный элемент с нужным стилем, и клик произвести именно по нему, но вот как это сделать технически, я пока не придумал.