首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当试图拖动/移动Selenium中的元素时,如何找出x和y偏移量?

当试图拖动/移动Selenium中的元素时,如何找出x和y偏移量?
EN

Stack Overflow用户
提问于 2016-11-28 13:49:13
回答 3查看 17K关注 0票数 3

我正在使用

代码语言:javascript
运行
复制
builder.moveToElement(element).moveByOffset(x,y).click().build().perform(); 

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

例如:首先我会尝试5,5,然后如果我看到它比5,10更接近右边,依此类推。

他们有办法一次就找到它吗?

EN

回答 3

Stack Overflow用户

发布于 2016-11-28 14:02:29

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

代码语言:javascript
运行
复制
WebElement ele= driver.findElement(By.xpath("x-path"));
Point point = ele.getLocation();
int xcord = point.getX();
int ycord = point.getY();
票数 1
EN

Stack Overflow用户

发布于 2018-09-28 14:55:56

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

  1. 如果您使用的是Chrome浏览器(使用插件“坐标”)或火狐浏览器(使用插件"Web Developer -> Display Ruler“)。
  2. 从这些插件获取坐标后,可以在操作类中使用它们进行拖放。
  3. 请注意,操作完成后,应将偏移量设置为零。

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

票数 0
EN

Stack Overflow用户

发布于 2019-07-05 16:05:48

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

代码语言:javascript
运行
复制
//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;
    }
  }
}

在我的经验中,偏移值几乎等于或范围内的特定点的像素值的一半点击webelement,即我的全屏关闭按钮的1300x700播放浏览器的视频,偏移值是x=550和y=320。尝试在该范围内进行限制。更小的Web元素意味着它更容易找到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40837892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档