2014-10-27 3 views
-1
<div class="cnvsWrapper" style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; border: 0px none; padding: 0px; margin: 0px;">Draw your signature div> 

шагов: мне нужно выбрать подсказку и нужно сделать подпись (с помощью мыши) в селене WebDriver. Может ли кто-нибудь помочь мне в этом?Как автоматизировать рисование подписи селена WebDriver

+0

Просьба предоставить образец HTML уже нарисованной подписи –

+0

нет образца html. – sruthi

+0

Я попытался записать шаги, используя Selenium IDE, но шаги не получают записей – sruthi

ответ

1

Вы можете «рисовать» с помощью Actions и moveByOffset взаимодействий. Но вы не сможете (насколько я знаю) рисовать «сложные» вещи.

Смотрите этот пример кода:

 Actions builder = new Actions(driver); 
     Action drawAction = builder.moveToElement(signatureWebElement, x, y) 
     //signatureWebElement is the element that holds the signature element you have in the DOM 
       .clickAndHold() 
       .moveByOffset(dest.x1, dest.y1) 
       .moveByOffset(dest.x2, dest.y2) 
       .release() 
       .build(); 
      dragAction.perform(); 
+0

Я попытался с приведенным выше кодом, но когда мы нарисуем кнопку, она должна быть включена. но он только в режиме отключения. то, что когда-либо мы нарисовали, не может найти. ниже приведен код: Действия actionBuilder = new Actions (driver); Действие drawOnCanvas = actionBuilder .moveToElement (canvasElement) .clickAndHold() .moveByOffset (100, 50) .release() .build(); drawOnCanvas.perform(); – sruthi

+0

Я не совсем понял, что вы подразумеваете под «... когда мы нажимаем кнопку, должна быть включена, но она только в режиме отключения». Кроме того, для рисования холстов требуется «щелкнуть и удерживать» во время рисования. Поэтому я думаю, что вы должны добавить clickAndHold вашему строителю. – Stas

+0

Я также хочу знать, хочу ли я рисовать от 4 до 5 с другой осью, я добавил в код как Actions actionBuilder = new Actions (driver); Действие drawOnCanvas = actionBuilder // .contextClick (canvasElement) .moveToElement (canvasElement) .clickAndHold() .moveByOffset (100, 50) .moveByOffset (6,7) .moveByOffset (-15, -50) .release() .build(); drawOnCanvas.perform() ;. это не работает. вы можете мне рассказать. – sruthi

0

Я решил проблему, которая, как рисунок 3 балла, которые создадут полигон и последний двойной щелчок завершает процесс рисования, код описанный ниже отлично работает для меня

WebElement element = driver.findElement(By.xpath("xpath of canvas")); 

    Actions builder = new Actions(driver); 
    Action drawAction = builder.moveToElement(element,135,15) //start points x axis and y axis. 
       .click() 
       .moveByOffset(200, 60) // 2nd points (x1,y1) 
       .click() 
       .moveByOffset(100, 70)// 3rd points (x2,y2) 
       .doubleClick() 
       .build(); 
    drawAction.perform(); 
0

Спасибо, что вам помогли.

builder.moveToElement (соглашениеSummaryPage.signatureTextArea, 135,15) // начальные точки оси x и оси y. .clickAndHold(). MoveByOffset (165,15). moveByOffset (185,15)