[英]selenium move mouse don't work with low resolution
我想用selenium来控制chrome浏览器。 在我的工作中,我将在地图中移动,但是当我的屏幕分辨率为1920 * 1080时,selenium将运行良好,并且当我的屏幕分辨率为1366 * 768时它不起作用。 代码是:
ChromeDriver driver =(ChromeDriver)webDriver;
WebElement map =driver.findElementsByClassName("ol-unselectable").get(0); // a MAP
Actions actions =new Actions(driver);
System.out.println(map.getSize());
int x =map.getSize().width;
int y =map.getSize().height;
actions.moveToElement(map,0,0).perform();
actions.moveByOffset(5,5).click().perform();
actions.moveByOffset((int)(x*0.5),0).click().perform();
actions.sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).perform();
actions.sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).perform();
actions.sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).perform();
actions.moveToElement(map,(int)(x*0.5),(int)(y*0.8)).click().perform();
actions.doubleClick().perform();
代码
actions.moveToElement(map,(int)(x*0.5),(int)(y*0.8)).click().perform();"
当我使用低分辨率时不起作用。
MAP看起来像这样: 当我的屏幕分辨率为: 1920 * 1080时 ,我的代码运行结果如下所示:
当我将屏幕分辨率更改为1366 * 768时 ,我的代码运行结果如下所示: 所以,我们可以发现,动作不能移动到地图元素{0.5宽度,0.9高}。 我应该怎么做?
有时使用Actions类几点:
有时我们可以使用JavaScript焦点方法在使用Actions类执行任何操作之前关注元素,如下面的代码:
JavascriptExecutor js = (JavascriptExecutor) ts.getDriver(); js.executeScript("arguments[0].focus();", we); actions.moveToElement(map,(int)(x*0.5),(int)(y*0.8)).click().build().perform();
试试这个 :
actions builder = new Actions(driver);
builder.moveToElement(map,(int)(x*0.5),(int)(y*0.8)).click().build().perform();
也许那会解决你的问题抱歉我不能只根据你的问题发表评论......
试试这个,
actions builder = new Actions(driver);
。builder.moveToElement(地图,(int)的(X * 0.5),(INT)(Y * 0.8))点击()建立()执行()。;
请试一试。 如果我没有错,它将解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.