如何使用selenium在svg元素内执行拖放操作?

时间:2017-08-31 17:17:43

标签: selenium 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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

你应该坚持使用cssSelector,因为selenium有问题与其他定位器一起处理svn标记。我也经历过同样的事情。

现在通过动作类在selenium拖放中传递相同的元素。您没有指定我们无法为您提取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();

希望它会对你有所帮助:)。