在Flash页面中选择框(组合框)无法使用Webdriver

时间:2012-06-08 10:23:52

标签: java webdriver watir-webdriver

我已经完成了一些示例代码,在Flash页面中使用webdriver选择了一个组合框但是Select(...)和type(....)方法不起作用但是click(....)方法工作正常。

请帮忙解决此问题。 类型1:下面的方法不起作用。

public void type(String locator, String value)
{
    ((JavascriptExecutor) webDriver).executeScript("document.getElementById('" + flashObjectId + "').fp_type({" + locator +", 'text':'"+ value +"'})");
}

public void select(String locator, String value) 
{
    ((JavascriptExecutor) webDriver).executeScript("document.getElementById('" + flashObjectId + "').fp_select({" + locator +", 'label':'"+ value +"'})");
}

它在下面的click(....)方法中工作正常。

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

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]));
           System.out.println("functionArgs: "+functionArgs);
          }
     }

     return String.format(
       "return document.%1$s.%2$s(%3$s);",
       flashObjectId,
       functionName,
       functionArgs);
}

请使用Flash中的webdriver在选择框和tyep操作中帮助解决此问题。

先谢谢, 戈帕尔

1 个答案:

答案 0 :(得分:1)

Watir-Webdriver不支持Flash页面。