Selenium Chrome WebDriver, как прокручивать по горизонтали

Веб-драйвер Chrome имеет ограничение, которое заключается в загрузке только того содержимого веб-страницы, которое находится в поле зрения. У меня есть сайт с длинной горизонтальной таблицей. У меня есть Xpath, который извлекает заголовки столбцов таблицы, которая растягивается больше, чем ширина экрана. В консоли chrome dev tool, если я запускаю xpath $x(myxpathgoeshere), я получаю все заголовки, включая те, которые не видны (тот, который заставляет вас прокручивать, чтобы увидеть все). Итак, я знаю, что мой xpath правильный. Но в коде, когда я обращаюсь к нему с помощью selenium webdriver, он дает только имена заголовков, которые находятся в текущем представлении. Я наткнулся на различные сообщения на странице группы Google Chrome WebDriver, пользователи упоминали об этом ограничении, и ответом на него было не исправлять его. В любом случае, теперь я пытаюсь заставить его работать с помощью javascript для горизонтальной прокрутки, а затем снова выполнить findelement с помощью xpath, чтобы увидеть, загружены ли элементы справа. Но по какой-то странной причине я не могу заставить работать горизонтальную прокрутку. Я использую исполнителя С# Javascript.

IJavaScriptExecutor js = (IJavaScriptExecutor) Driver;
js.ExecuteScript("scrollTo(3000,0);"); // whatever X value I use chrome is not scrolling to the right. 

Я также пробовал scrollX и не повезло. Что-то не так с моим кодом?

Отредактировано: забыл, что я использовал X для горизонтального, а не Y


person DoodleKana    schedule 29.09.2014    source источник
comment
Обычно, когда вы фокусируете элемент, он прокручивается до него. (например, SendKeys() ). Вы знаете, у меня никогда не было проблем с поиском элементов, хотя мне не удавалось манипулировать теми, которые не находятся в порту просмотра, вы правы.   -  person Alex Denysenko    schedule 29.09.2014
comment
Кстати, это не проблема с IE и Firefox. Firefox найдет контент, которого нет в поле зрения.   -  person DoodleKana    schedule 29.09.2014


Ответы (2)


для этого типа проблемы я использовал функции увеличения и уменьшения масштаба браузера, но я использую это в java. С классом робота Java я уменьшаю масштаб браузера, поэтому я автоматически показываю скрытый столбец. вы можете попробовать, что это может помочь вам.

person SahilPatel    schedule 29.01.2015
comment
интересная мысль. Я полагаю, что мог бы использовать javascript, чтобы сделать ctrl--, чтобы отобразить скрытый контент. Мы надеемся, что это должно сделать взаимодействие с DOM менее отличным, чем когда оно установлено на 100%. - person DoodleKana; 30.01.2015
comment
Это сломает для Internet Explorer. Это будет хорошо для Chrome и Firefox - person Raymond Kelly; 02.04.2016

Изменить код:

js.ExecuteScript("scrollTo(3000,0);");

to

js.ExecuteScript("scroll(3000,0);");

Просто это не только scrollTo и scroll.

person user5188677    schedule 04.08.2015