Поиск svg элементов на странице

Господа меня только что осенило какой глупый недочет я не замечал. Дело в том что когда я вызывал свой граф, он строился в новой вкладке браузера chrome, а драйвер продолжал искать в предыдущей вкладке. Насколько я знаю selenium не умеет ориентироваться между вкладками. Может вы знаете решение как переключаться между ними?

Умеет. switchTo().window(), например.

driver.switch_to.window driver.window_handles[0]

Переключит тебя на первую вкладку, например.

1 лайк

Спасибо огромное ребята!!! +100500 вам в карму =) Считаю свой вопрос закрытым.

Таки получилось добиться результата? Интересно же. :slight_smile:

ДА получилось! просто переключился между вкладками =) В большинстве случаев всегда так, надо смотреть не на глобальные вещи, а на мелкие недочеты…собственно из-за них все и валится ))

Главное, что из-за темы многое подчеркнули.
@klysak07 — что можно переключаться между вкладками
@sidelnikovmike — что тег link не требует закрытия
@tit — что есть ещё люди, которые используют svg вместо canvas
@all — что Ruby самый лучший язык. :slight_smile:

1 лайк

Про ruby я не согласен.
А про link - надо запомнить)))

1 лайк

просто для информации - занимательный факт, может кому пригодится: не знаю как в ruby-версии webdriver, но в java driver.windowHandles имеет тип set, что не гарантирует по 0 индексу (условно обозначим так первый элемент, отданный итератором) наличие именно первой открытой вкладки. Может вернуться handle для любой случайной открытой вкладки (окна) - нужно обращать на это внимание. По крайней мере в java

Можно у полученных Handles’ов вытягивать Title страницы и так определять нужные вкладки.

специально перечитал все сообщения, это из-за чего у тебя такое убеждение? :smile:

Могу предположить, это потому, что Ruby можно скомпилировать в JavaScript!
Хотя… нет… это все умеют делать

Вот локатор который помог в моей ситуации
“/[name()=‘svg’]/[name()=‘SVG OBJECT’]”;

Источник - java - Selenium WebDriver: clicking on elements within an SVG using XPath - Stack Overflow