Как проверить, находится ли элемент вверху страницы

У меня есть тестовый пример, который проверяет, когда пользователь нажимает кнопку, заголовок должен прокручиваться вверх до верхней части страницы. Но по умолчанию есть заголовок. Заголовок должен быть ниже. Как мы можем это проверить. Пожалуйста помоги

Ваши пробные версии кода, HTML-код, если таковой имеется.

cruisepandey 10.09.2018 09:20

element.getBoundingClientRect () может быть полезен

Chris Li 10.09.2018 09:20
2
2
71
1

Ответы 1

Следующий подход является очень «длинным», но он очень успешно работал у меня в прошлом.

Вы можете извлечь местоположение и размер с помощью команд Selenium для обоих объектов. Затем вы можете рассчитать площадь экрана, в которой находится заголовок, и сравнить ее с площадью экрана, на которой отображается заголовок.

Если эти области перекрываются, можно сказать, что заголовок скрыт заголовком.

Вот пример в качестве RSpec Matcher;

RSpec::Matchers.define :be_within do |reference_object|

  @reference_object_location = reference_object.location
  @reference_object_size = reference_object.size

  match do |relative_object|

    @relative_object_location = relative_object.location
    @relative_object_size = relative_object.size

    relative_x_max = @relative_object_location.x + @relative_object_size.width
    relative_x_min = @relative_object_location.x
    relative_y_max = @relative_object_location.y + @relative_object_size.height
    relative_y_min = @relative_object_location.y

    reference_x_max = @reference_object_location.x + @reference_object_size.width
    reference_x_min = @reference_object_location.x
    reference_y_max = @reference_object_location.y + @reference_object_size.height
    reference_y_min = @reference_object_location.y

    relative_x_max <= reference_x_max && relative_y_max <= reference_y_max &&
    relative_x_min >= reference_x_min && relative_y_min >= reference_y_min

  end

Как я уже сказал, не очень!

Другие вопросы по теме