package com.yahoo.dtf.actions.selenium.commands.base;
import com.yahoo.dtf.actions.selenium.Selenium;
import com.yahoo.dtf.exception.DTFException;
import com.yahoo.dtf.exception.ParseException;
/**
* @dtf.tag runScript
* @dtf.skip.index
*
* @dtf.since 1.0
* @dtf.author Rodney Gomes
*
* @dtf.tag.desc <p>
* This selenium tag allows you to inject javascript into the
* currently focused window. The javascript is instantly executed
* within the page and can be used to test javascript elements
* that you would otherwise not have a way of testing. In the
* example we're just demonstrating how you can use this command
* to manipulate elements on the page easily.
* </p>
*
* @dtf.tag.example
* <selenium baseurl="http://www.google.com" browser="*firefox">
* <property name="tornadoscript">
* javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName("img"); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px"}R++}setInterval('A()',5); void(0);
* </property>
* <runScript script="${tornadoscript}"/>
* <sleep time="2s"/>
* </selenium>
*/
public class Runscript extends Selenium {
/**
* @dtf.attr script
* @dtf.attr.desc the javascript to execute in the browser
*/
private String script = null;
@Override
public void execute() throws DTFException {
getSelenium().runScript(getScript());
}
public String getScript() throws ParseException {
return replaceProperties(script);
}
public void setScript(String script) {
this.script = script;
}
}