首页 > 解决方案 > 如何在 Openlayers 上找到多边形从中心的偏移值

问题描述

我计算了 (x1,Y1) 和 (x2,Y2) 并计算了它们之间的差异(蓝线)并将这些像素值提供给驱动程序单击,但我无法单击多边形(点)。1.首先,根据窗口,鼠标将移动到地图的中心,其中 (x1,y1)=(960,520),但驱动程序会将这些值视为 (0,0)。2. 现在我需要计算从中心到地图上每个多边形的偏移值。(x1,y1)=(960,520) 和 (x2,y2)=(1000,232)

(x1,y1) 和 (x2,y2) 之间的差异会给我点到中心的距离。例如:(x3,y3)

在此处输入图像描述

下面的代码

try {
            driver.get("http://localhost:8090/demo/");
            System.out.println("demo opened");
            Thread.sleep(15000);

            WebElement can = driver.findElements(By.tagName("canvas")).get(0);
            Actions builder = new Actions(driver);
            builder.moveToElement(can,0,0).click().perform();
            Thread.sleep(12000);

            WebElement eler1x = driver
                    .findElement(By.xpath("/html/body/div[2]/div/div/div/div[3]/div/div/div[17]/div"));
            String val1 = eler1x.getText();
            System.out.println(val1);
            WebElement eler1y = driver
                    .findElement(By.xpath("/html/body/div[2]/div/div/div/div[3]/div/div/div[19]/div"));
            String val2 = eler1y.getText();
            System.out.println(val2);
            double x1 = Double.parseDouble(val1);
        //error line    double y1 = Double.parseDouble(val1);
            double y1 = Double.parseDouble(val2);
            int r2x1 = (int) x1;
            int r2y1 = (int) y1;
            builder.moveByOffset(r2x1, r2y1);
            builder.click().build().perform();
            System.out.println("executed");

        } catch (Exception e) {
            System.out.println(e);
        }

我给出了(x3,Y3)之间的差异作为驱动程序的偏移值,测试用例通过但没有点击点或多边形。任何人都可以举例或建议如何计算 Openlayers 上的偏移值

标签: javaseleniumselenium-webdriveropenlayersvaadin8

解决方案


推荐阅读