Используя IWebElement.Location
, я могу получить координаты верхнего левого угла элемента относительно верхнего левого угла страницы.
Но это местоположение не говорит мне, где элемент находится в текущем окне браузера, то есть, вне зависимости от того, выключен ли он на экране или на экране, и если он отображается на экране, то есть ли он сверху или снизу или середине и т.д. Есть ли способ получить эту информацию на C#
?
Благодарю!
Редактировать:
Для контекста проблема, которую я пытаюсь решить, выглядит примерно так:
1. Создайте экземпляр Selenium WebDriver и перейдите на страницу http://en.wikipedia.org/wiki/Selenium_(software).
2. Нажмите ссылку в таблице "Содержание", скажем, Selenium IDE.
Мне нужно проверить, что щелчок по ссылке приведет меня к разделу Selenium IDE на странице, то есть раздел Selenium IDE теперь отображается в верхней части окна браузера.
Возможно, это тот ответ, который вы ищете. Вероятно, вам придется полагаться на javascript. Здесь, где я получил идею: JQuery получить расположение элемента относительно окна
Или, подождите! Вы можете сделать это с чистым селеном. (Та же основная идея, что и в ссылке.)
$(window).scrollTop()
Отображается, что вам нужно.
driver.FindElement(By.Id("MyID")).Displayed
Или, в вашем случае:
IWebElement.Displayed;
IWebElement.Displayed
возвращает true независимо от того, находится ли элемент на экране или вне экрана. Это не очень мне помогает. Я хочу знать местоположение элемента на текущем экране. Я хочу что-то похожее наIWebElement.Location
но которое меняется при прокрутке страницы вверх или вниз.