Создам отдельную ветку для своего вопроса. В общем существует проблема, связанная с тем, что при запуске теста в eclipse (WebDriver) не выполняется команда click() Стек ошибки element not found.
Собственно, часть моего теста спокойно можно воспроизвести, а главное без ошибок в Selenium IDE. ( http://kiev.karabas.com/ru/--order/132408001.html - картинка на которой нужно сделать клик по ячейке)
Если да, то входите ли вы в iFrame, в котором расположен SVG объект? - я пытаюсь подставить тот же локатор который мне воспроизводит Selenium IDE.
P.S. если имеешь доступ к разработчикам срочно пиши им юзабилити-блокер. Нечто ужасное творится с цветовой гаммой: места “Зарезервировано”, “180 грн.” и “450 грн.” одного цвета. Те оттенки, которые выбраны, нифига не различаются глазом, когда объекты, выкрашенные в указанные цвета, расположены далеко друг от друга
Как вариант, вставляйте svg-объект инлайн, тогда веб-драйвер должен находить все вложенные теги и ссылки, приведенные @TIT помогут вам найти нужные элементы.
// получить URL SVG-документа
String svgUrl = driver.findElement(By.xpath("//object")).getAttribute("svg-src");
// загрузить документ
driver.get(svgUrl);
// работать внутри SVG-документа
driver.findElement(By.xpath("поиск внутри SVG-объекта"));
// вернуться обратно
driver.get(baseURL)
Стоит попробовать. Проблема может быть с последним шагом по возвращению к предыдущей странице, если на неё в тесте нет прямого урла, либо он в принципе не предусмотрен. Но тут надо смотреть по месту, какие могут быть варианты решения.
Ещё как вариант, попробовать работать с SVG-документом через отдельный (от основного) драйвер (и отдельный же браузер). Тут надо смотреть так же насколько такой вариант приемлем
Проблема в том что внутренности SVG не в DOM-е страницы. Можно ли до них с помощью JS добраться? Если только подгрузить документ ajax-ом? Возможно такое? Сам такое никогда не пробовал
Вариант, но суть задачи ведь не просто кликнуть по элементу, а и продолжить какое-то действие, используя функционал основной страницы (например, оформить покупку).
Думаю, что проще вставлять svg прямо в документ без тега object (или вставлять в iframe), в этом случае вебдрайвер должен нормально работать с этим элементом. Это вопрос к разработчикам согласны ли они на такое изменение (не силен в новомодных подходах работы с html)