2015-07-01 2 views
1

Мне нужно переключиться на iframe с динамическим именем и идентификатором.Как включить iframes InternJS

<iframe name="easyXDM_1435765828615" id="easyXDM_1435765828615">...</iframe> 

Я заметил Лэдфут имеет switchToFrame() функцию, но когда я прохожу его элемент, который был возвращен из find() я получаю ошибку «MoveTargetOutOfBounds: {POST HTTP .../MoveTo /» элемент «:» 16" } Смещение внутри элемента нельзя прокручивать в поле зрения ".

Есть ли лучший способ сделать это, используя execute() и некоторый javascript, или как я могу заставить switchToFrame() работать?

+0

Что делать, если вы передаете строку 'easyXDM_1435765828615' в' switchToFrame() '? Или, динамически генерируется ли идентификатор? – alecxe

+0

Это динамичный. В настоящее время я использую xpath // * [содержит (@id, «easyXDM_»)], чтобы найти iframe. – mziemer

+0

Хорошо, еще один вариант: укажите индекс формы - например. 'SwitchToFrame (1)'. – alecxe

ответ

0

В зависимости от того, как плавающие фреймы являются установки на странице, вы можете попробовать что-то вроде этого:

.switchToFrame(null) 
    .findAllByClassName('iframe') 
    .then(
     function(iframes) { 
     new remote.constructor(remote.session) 
     .switchToFrame(iframes[iframes.length-1]) 
     } 
    ) 

Это предполагает, что IFrame вы хотите переключиться в прошлом можно найти, что, очевидно, большое предположение , Возможно, вы сможете настроить его, если динамически созданные iframe отображаются в одном порядке каждый раз.

Смежные вопросы