在尝试拖动/移动Selenium中的元素时,如何找出x和y偏移?

在尝试拖动/移动Selenium中的元素时,如何找出x和y偏移?,selenium,selenium-webdriver,offset,Selenium,Selenium Webdriver,Offset,我正在使用 builder.moveToElement(element).moveByOffset(x,y).click().build().perform(); 在上面的函数中,我不确定X和Y的值,所以我必须运行测试几次,以找出X和Y的正确值 示例:首先,我将尝试使用5,5,然后如果我看到它比5,10更向右,依此类推 它们是一种一次性找到的方法吗?尝试下面的代码以获得精确的x&y坐标,然后尝试您的代码 WebElement ele= driver.findElement(By.xpath(

我正在使用

builder.moveToElement(element).moveByOffset(x,y).click().build().perform(); 
在上面的函数中,我不确定X和Y的值,所以我必须运行测试几次,以找出X和Y的正确值

示例:首先,我将尝试使用5,5,然后如果我看到它比5,10更向右,依此类推


它们是一种一次性找到的方法吗?

尝试下面的代码以获得精确的x&y坐标,然后尝试您的代码

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

请尝试遵循以下详细信息

  • 如果您使用的是Chrome浏览器(使用插件“Cordinates”)或Firefox浏览器(使用插件“Web开发者->显示标尺”)

  • 从这些插件获取cordinate之后,可以在action类中使用它们进行拖放

  • 请注意,一旦操作完成,应将偏移量设置为零

  • e、 g:如果在第一次尝试中,我试图单击(60,20)处的任何元素预设,那么在第二次尝试单击任何其他位置之前,我应该将偏移设置为(-60,-20)。
    否则,您可以找到第二个坐标,并在尝试单击该坐标之前执行加减计算。

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

    //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元素大小的x和y限制
    WebElement=//您的元素;
    操作=新操作(remoteDriver);
    对于(int x=0;x
    根据我的经验,偏移值几乎等于或在特定点的像素值的一半范围内单击webelement
    ie对于1300*700播放浏览器的视频的全屏关闭按钮,全屏关闭按钮的偏移值为x=550和y=320。试着限制在那个范围内。较小的Web元素意味着更容易找到。

    它不会工作,因为除非我将其正确悬停,否则第二个元素将不会被激活。所以我想手动查看它并硬编码itx偏移-水平偏移。负值表示向左移动鼠标。y偏移-垂直偏移。负值表示鼠标向下移动。在其他人将上述评论视为理所当然之前:请仔细检查!我相信对于y偏移-垂直偏移:正值意味着向下移动鼠标。@JackMiller我在我的系统中再次尝试了这一点,发现正值意味着向上移动鼠标。也请检查firefox标尺。