读书人

运用WebDriver测试Flash

发布时间: 2012-10-19 16:53:35 作者: rapoo

使用WebDriver测试Flash
在网上看到一篇介绍如何使用WebDriver测试Flash的文章

http://learnseleniumautomation.blogspot.com/2011/12/driving-flex-application-via-selenium-2.html

Flex应用需要使用ActionScript extension编译。没有测试过。如果以后需要,可以借鉴一下。

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;

public class FlexWebDriver {
private final WebDriver webDriver;
private final String flashObjectId;

public FlexWebDriver(final WebDriver webDriver, final String flashObjectId) {
this.webDriver = webDriver;
this.flashObjectId = flashObjectId;
}

public String click(final String objectId, final String optionalButtonLabel) {
return call("doFlexClick", objectId, optionalButtonLabel);
}

public String click(final String objectId) {
return click(objectId, "");
}

//... Omitted for clarity ...

private String call(final String functionName, final String... args) {
final Object result =
((JavascriptExecutor)webDriver).executeScript(
makeJsFunction(functionName, args),
new Object[0]);

return result != null ? result.toString() : null;
}

private String makeJsFunction(final String functionName, final String... args) {
final StringBuffer functionArgs = new StringBuffer();

if (args.length > 0) {
for (int i = 0; i < args.length; i++) {
if (i > 0) {
functionArgs.append(",");
}
functionArgs.append(String.format("'%1$s'", args[i]));
}
}
return String.format(
"return document.%1$s.%2$s(%3$s);",
flashObjectId,
functionName,
functionArgs);
}
}

读书人网 >Web前端

热点推荐