如何在Selenium中拖动/移动元素时找出x和y偏移量?

时间:2016-11-28 05:49:13

标签: selenium selenium-webdriver offset

我正在使用

builder.moveToElement(element).moveByOffset(x,y).click().build().perform(); 

在上面的函数中,我不确定X和Y的值,所以我必须多次运行测试才能找到正确的X和Y值。

示例:首先我会尝试使用5,5然后如果我看到它比5,10更接近正确等等。

他们有办法找到它吗?

3 个答案:

答案 0 :(得分:1)

尝试使用以下代码获取精确的x& y坐标&然后尝试你的代码

WebElement ele= driver.findElement(By.xpath("x-path"));
Point point = ele.getLocation();
int xcord = point.getX();
int ycord = point.getY();

答案 1 :(得分:0)

请尝试遵循以下详细信息。

  1. 如果您使用的是Chrome浏览器(使用“坐标”中的插件)或Firefox浏览器(使用“ Web Developer->显示标尺”中的插件)。

  2. 从这些插件中获取坐标后,可以在操作类中使用它们进行拖放。

  3. 请注意,一旦完成操作,则应将偏移量设置为零。

例如:如果第一次尝试单击(60,20)处的任何预设元素,那么在第二次尝试单击其他位置之前,我应将偏移量设置为(-60,-20)。 否则,您可以找到第二个坐标并执行正负计算,然后再尝试单击该坐标。

答案 2 :(得分:0)

尝试使用此代码通过程序本身获取坐标

//set x and y limits to your webelement size
WebElement element = //your element;
actions = new Actions(remoteDriver);

for (int x = 0; x < element.getSize().getWidth(); x++) {
  for (int y = 0; y < getSize().getHeight(); y++) {
   actions.moveToElement(element).moveByOffset(x, y).click().build().perform();

    if ( //your condition ) {
      System.out.println("X and Y when condition satisified  are" + x " and " + y);
      break;
    }
  }
}

根据我的经验,偏移量值几乎等于或在特定点像素值的一半范围内,以单击Web元素 例如,对于我的1300 * 700播放浏览器的视频的全屏关闭按钮,全屏关闭按钮的偏移值为x = 550和y = 320。尝试限制在该范围内。较小的Web元素意味着它更容易找到。