К вашему сведению, у вас есть ссылки, которые используют стандартные фоновые изображения, управляемые с помощью магии CSS, которые указывают класс ссылки, чтобы знать, какой фон установить. Вот откуда изображение и почему вы не видите его как часть ссылки в HTML.
В этом элементе управления каждая вкладка является элементом (li) элемента списка в неупорядоченном списке (ul), и каждый элемент списка имеет идентификатор, так что это самый простой способ определить, какую вкладку вы пытаетесь щелкнуть внутри.
Попробуйте определить вещи, начиная с LI, который является контейнером вкладок, так как в этом контейнере есть только один экземпляр каждой ссылки данного класса. Из 4 ссылок только одна без какого-либо простого идентификатора, и если вам нужно щелкнуть по той ссылке, которую вам нужно использовать: index, но для остальных 3 ссылок, использующих: class, должно работать. Это должно привести к тому, что код станет менее хрупким и может быть поврежден при изменении порядка вкладок или при рефакторинге страницы.
@browser.li(:id,"NetworkAnalysisTabPanel__ext-comp-1038").link(:class, "x-tab-strip-menu").click
Если число в конце идентификатора может быть изменено, вы можете попробовать использовать регулярное выражение, соответствующее той части, которую вы можете предсказать, и уникальное среди других
@browser.li(:id,/NetworkAnalysisTabPanel__ext-comp-/).link(:class, "x-tab-strip-menu").click
Если вы можете надежно идентифицировать объект и использовать .flash, но .click, похоже, ничего не делает, вам, возможно, придется использовать .fire_event ('onclick') вместо этого или .click.
@browser.li(:id,/NetworkAnalysisTabPanel__ext-comp-/).link(:class, "x-tab-strip-menu").fire_event('onclick')
Если это не сработает, то вам нужно начать экспериментировать с вероятными событиями, которые может искать элемент управления (которые необязательно будут отображаться в HTML, кстати ... это может быть в javascript или CSS и т. Д.)
UPDATE
Именно здесь жизненно важно иметь живой пример контроля, с которым мы можем взаимодействовать. В поисках названий классов я смог найти один здесь , и это позволило мне немного поиграть с ним, и я обнаружил, что он ищет новое обращение. так что на этом сайте это работает
browser.li(:id, 'TabPanel1__ctl07').link(:class, 'x-tab-strip-menu').fire_event('onmousedown')
Теперь, так как эти идентификаторы могут быть не лучшим идентификатором, немного больше копания (с использованием .text в li, содержащем части вкладки) нашли какой-то текст, который в таком меню должен быть уникальным .. ТАК, мы можем изменить это, чтобы сделать вещи более устойчивыми и понятными в отношении того, на какую вкладку я нажимаю (это также будет меньше подвержено разрыву, если вкладки изменятся вокруг.
browser.li(:text, 'Menu 1').link(:class, 'x-tab-strip-menu').fire_event('onmousedown')
Наконец, так как щелчок вызывает выполнение кода на стороне клиента, вам может потребоваться короткая пауза (один или две секунды сна), чтобы дождаться повторного рендеринга этой части страницы и т. Д.