Действие перетаскивания не работает в селене, оно также не отображает никаких ошибок - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь перетащить элемент из списка, пользователь должен нажать на эллипсы и перетащить элемент к месту назначения.Я пробовал разными способами, но он не работает и не выдает никакой ошибки.Мой тестовый пример также показывается как пройденный без выполнения перетаскивания.

Я хочу, чтобы Предприниматель был перетащен в местоположение Профессора, но он вообще не работает.

нижеHTML для того же

<div class="row role"><div class="col-sm-7 role-name">Entrepreneur</div><div class="col-sm-5"><!----><span class="one-glober"><!----><!----></span><i class="fa fa-bars pull-right drag-roles"></i></div></div>


<li id="2" draggable="false" class="active" style=""><div class="row role"><div class="col-sm-7 role-name">Professor</div><div class="col-sm-5"><!----><i class="fa fa-bars pull-right drag-roles"></i></div></div></li>

я попробовал ниже способы сделать это, но ни один из них не работает.

    @FindBy(xpath="//li[@id='2']//i[@class='fa fa-bars pull-right drag-roles']")
    private WebElement source;

    @FindBy(xpath="//li[@id='4']//i[@class='fa fa-bars pull-right drag-roles']")
    private WebElement destination;

    public CharacterRoleDragDropPage dragAndDrop() throws InterruptedException {

        wait.until(ExpectedConditions.invisibilityOf(loader));

        Actions action= new Actions(driver);
        //action.dragAndDrop(source, destination).build().perform();
        //action.clickAndHold(source).moveToElement(destination).release().build().perform();
        source.click();
        //action.clickAndHold(source).dragAndDropBy(source,0, 500).build().perform();
        //action.clickAndHold(source).moveByOffset(0, 500).moveToElement(destination).build().perform();    
        //action.clickAndHold(source).moveToElement(destination).release(source).build().perform();
        action.clickAndHold(source).dragAndDrop(source, destination).build().perform();
        return this;

    }

1 Ответ

1 голос
/ 12 апреля 2019

У меня тоже были проблемы с drag & drop и я понял, что если я использовал moveByOffset метод с комбинацией pause, он начал работать.

Вы можете попробовать код ниже:

new Actions(driver)
    .moveToElement(source)
    .pause(Duration.ofSeconds(1))
    .clickAndHold(source)
    .pause(Duration.ofSeconds(1))
    .moveByOffset(1, 0)
    .moveToElement(destination)
    .moveByOffset(1, 0)
    .pause(Duration.ofSeconds(1))
    .release().perform();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...