Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查元素是否位于页面顶部_Javascript_Selenium - Fatal编程技术网

Javascript 如何检查元素是否位于页面顶部

Javascript 如何检查元素是否位于页面顶部,javascript,selenium,Javascript,Selenium,我有一个测试用例,当用户单击buton时,它会检查标题是否应该向上滚动到页面顶部。但是默认情况下有一个标题。所以标题应该在下面。我们怎么能核实呢。请帮助以下是非常“长期”的方法,但它在过去对我非常成功 您可以通过Selenium命令提取两个对象的位置和大小。然后,您可以计算标题所在屏幕的面积,并将其与标题显示的屏幕面积进行比较 如果这些区域重叠,可以说标题被标题隐藏 下面是一个RSpec匹配器示例 RSpec::Matchers.define :be_within do |reference_o

我有一个测试用例,当用户单击buton时,它会检查标题是否应该向上滚动到页面顶部。但是默认情况下有一个标题。所以标题应该在下面。我们怎么能核实呢。请帮助

以下是非常“长期”的方法,但它在过去对我非常成功

您可以通过Selenium命令提取两个对象的位置和大小。然后,您可以计算标题所在屏幕的面积,并将其与标题显示的屏幕面积进行比较

如果这些区域重叠,可以说标题被标题隐藏

下面是一个RSpec匹配器示例

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
RSpec::Matchers.define:be|u in do | reference_对象|
@reference\u object\u location=reference\u object.location
@reference\u object\u size=reference\u object.size
匹配do |相对_对象|
@相对对象位置=相对对象位置
@相对对象大小=相对对象大小
相对大小x最大=@relative\u object\u location.x+@relative\u object\u size.width
相对_x_min=@relative_object_location.x
相对大小=@relative\u object\u location.y+@relative\u object\u size.height
相对_y_min=@relative_object_location.y
reference\u x\u max=@reference\u object\u location.x+@reference\u object\u size.width
reference_x_min=@reference_object_location.x
reference\u y\u max=@reference\u object\u location.y+@reference\u object\u size.height
reference_y_min=@reference_object_location.y
相对_x_max=参考_y_min
结束

就像我说的,不漂亮

您的代码试用版,HTML代码(如果有的话)。element.getBoundingClientRect()可能很有用