2017-08-31 62 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();代码正在通过,但拖放不会发生。 –