Java 我可以按像素定位元素(css位置)吗?爪哇,硒

Java 我可以按像素定位元素(css位置)吗?爪哇,硒,java,selenium,element,Java,Selenium,Element,我需要拖放一个图标来对网页上的列标题重新排序,每个标题都有自己的重新排序图标,并且无法通过任何元素定位方法(xpath/CSS选择器/link..等)来指定它 有没有办法通过像素(CSS位置)定位元素 以上是我的代码: 在CSS选择器中,“动态”是指那些动态生成的,所以我不想使用它 但是要执行act.dragAndDropBy我需要一个WebElement参数: dragandrop(源、目标) dragandropby(源代码、xOffset、yOffset) 146、214是我要将第一个重新

我需要拖放一个图标来对网页上的列标题重新排序,每个标题都有自己的重新排序图标,并且无法通过任何元素定位方法(xpath/CSS选择器/link..等)来指定它 有没有办法通过像素(CSS位置)定位元素

以上是我的代码:

  • 在CSS选择器中,“动态”是指那些动态生成的,所以我不想使用它
  • 但是要执行
    act.dragAndDropBy
    我需要一个WebElement参数:
  • dragandrop(源、目标)

    dragandropby(源代码、xOffset、yOffset)

  • 146、214是我要将第一个重新排序图标拖动到的位置

  • 我认为这可以帮助您解决问题:

    public void ReorderColumns() {
    
    // Element which needs to drag.
    WebElement From = driver.findElement(By.cssSelector(
            "body > div:nth-child(3) > div > div.dynamic > div > div:nth-child(2) > div > div.dynamic.dynamic  > svg"));
    
    Actions act = new Actions(driver);
    
    // Drag and Drop by Pixel.
    act.dragAndDropBy(From, 146, 214).build().perform(); }
    
        WebElement a = driver.findElement(By.cssSelector("your_selector"));
        WebElement b = driver.findElement(By.cssSelector("your_selector"));
    
        int x = b.getLocation().x;
        int y = b.getLocation().y;
    
        Actions actions = new Actions(driver);
        actions.moveToElement(a)
                .pause(Duration.ofSeconds(1))
                .clickAndHold(a)
                .pause(Duration.ofSeconds(1))
                .moveByOffset(x, y)
                .moveToElement(b)
                .moveByOffset(x,y)
                .pause(Duration.ofSeconds(1))
                .release().build().perform();