2016-09-06 2 views
-1

У меня есть оверлей с терминами, открывающимися сверху главного окна. Это не то, что скроллбары выглядеть следующим образом:Selenium - как переключить фокус на наложение

Scrollbar

Новое окно не распознается как новое «окно» или вкладки, так что я не могу переключиться на него, как правило, ни действительно ли это так IFrame driver.switchTo() .frame (IFrame); тоже не будет работать. Это то, что я пытался до сих пор:..

1) При нажатии на элемент (К элементу я имею в виду фрагмент наложения, содержащий содержание Ничего не делает

2) Переключение фокуса с помощью следующих действий:

jse.executeScript("var ov = document.getElementsByClassName('overlay__content'); window.setTimeout(function() { ov[0].focus(); }, 0); "); 

3) Попытка нажать затем использовать переключатель для активного элемента:

_driver.getWebDriver().switchTo().activeElement(); 

Ни один из этих результатов работы. Я пытаюсь переключиться на окно, а затем использовать ashot для получения полноэкранного скриншота. Это очень хорошо работает с iframes, но я смущен относительно того, как двигаться дальше. Любой scrollBy (0,10) и т. Д. Приведет к прокрутке основного окна.

+0

Это трудно понять ваш вопрос .. бы подробнее рассказать ??? –

+0

Каким образом? Наложение открывает главное окно, в котором я хочу установить фокус, а затем прокручивать, но я не могу. –

+0

Не могли бы вы предоставить общий обзор снимка экрана вместо бокового обзора? –

ответ

0

Для прокрутки внутри оверлейного div вы можете сделать метод с JavaScriptExecuter следующим образом:

public void scrollDownInsideOf(WebElement element, int pxForScrollDown) { 
    JavascriptExecutor js = (JavascriptExecutor) webDriver; 
    js.executeScript("arguments[0].scrollTop = arguments[1];", element, pxForScrollDown); 
} 

элемент должен быть внутри DIV с наложением

+0

Проблема заключается не столько в прокрутке внутри элемента, но в том, чтобы сделать ashot (https://github.com/yandex-qatools/ashot), установив «focus» на элемент, как вы можете сделать для iframes. Но я дам это и посмотрю, как это получается, спасибо. –

+0

Если это просто div, как вы говорите, вы не можете использовать switchTo(), как вы можете делать с окнами в iframes. Поскольку переключаться нечего, это содержимое источника страницы. –