我正在使用
builder.moveToElement(element).moveByOffset(x,y).click().build().perform();
在上面的函数中,我不确定X和Y的值,所以我必须多次运行测试才能找到正确的X和Y值。
示例:首先我会尝试使用5,5然后如果我看到它比5,10更接近正确等等。
他们有办法找到它吗?
答案 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)
请尝试遵循以下详细信息。
如果您使用的是Chrome浏览器(使用“坐标”中的插件)或Firefox浏览器(使用“ Web Developer->显示标尺”中的插件)。
从这些插件中获取坐标后,可以在操作类中使用它们进行拖放。
请注意,一旦完成操作,则应将偏移量设置为零。
例如:如果第一次尝试单击(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元素意味着它更容易找到。