2017-08-31 103 views
-1

[下面是頁面元素的圖片,我想拖動svg元素裏面試過的動作類和機器人類,但也不行。如何使用硒在svg元素內執行拖放操作?

resizeblockTwo']"> 
 
<div class="chartCanvas js-resizeblockOne drpm-resize__block-one"> 
 
<div class="titleBar layout-align-space-between-center layout-row"> 
 
<graph-canvas class="ng-scope"> 
 
<section class="chartContainer"> 
 
<div class="chartArea joint-theme-default paper" droppable=""> 
 
<svg id="v-2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="100%" height="100%"> 
 
</div> 
 
</section> 
 
<div ng-transclude=""> 
 
</graph-canvas> 
 
<div class="processflow-empty-message ng-scope" ng-if="emptyGraph" style=""> 
 
<div class="drpm-resize__grabber"> 
 
</div>

+1

*嘗試操作類和機器人類* ...顯示你如何嘗試 – Andersson

+0

Actions act = new Actions(fd); //找到我們需要拖動的元素WebElement drag = fd.findElement(By.cssSelector(「[type = InputData]」)); //找到我們需要放棄的元素WebElement drop = fd.findElement(By.cssSelector(「svg [id ='v-2']」)); //這會將元素拖動到目標act.dragAndDrop(drag,drop).build()。perform();代碼正在通過,但拖放不會發生。 –

回答

0

你應該堅持cssSelector硒具有處理與其他定位器SVN標籤的問題。我也經歷過同樣的事情。

現在通過操作類傳遞相同的元素在硒拖放。你沒有帶指定我們不能提取CssSelector你的元素,你可以使用chrome-> Inspect-> copy -> copy selector

在java中它會像下面: -

Actions act=new Actions(driver); 

// find element which we need to drag 
WebElement drag=driver.findElement(By.cssSelector("YOUR CSS Selector")) 

// find element which we need to drop 
WebElement drop=driver.findElement(By.cssSelector("YOUR CSS Selector")); 

// this will drag element to destination 
act.dragAndDrop(drag, drop).build().perform(); 

希望它會幫助你:)

+0

Actions act = new Actions(fd);我們需要拖動的元素 WebElement drag = fd.findElement(By.cssSelector(「[type = InputData]」));我們需要刪除的元素 WebElement drop = fd.findElement(By.cssSelector(「svg [id ='v-2']」)); //這會將元素拖動到目標 act.dragAndDrop(drag,drop).build()。perform();代碼正在通過,但拖放不會發生。 –