单击Javascript与Selenium生成的按钮

时间:2014-07-13 19:10:11

标签: javascript flash button selenium

我想使用Selenium或其他套餐自动点击" 复制"一个网页上的按钮。  该按钮似乎由Javascript生成。有可能这样做吗?提前谢谢!

<script src="media/portal/js/table-maker.js" type="text/javascript"></script>

以下是与{&#34;复制&#34;相关的table-maker.js中的一段代码。按钮:

    this.generateEntityTable = function(entityName, ajaxDataProperty, 
        urlSuffix, objectHeadings, objectFields, hiddenFields, 
        tableSelector, tableId, 
        emptyMessage) {
    if (!emptyMessage) {
        emptyMessage = "No data available in table";
    }
    var oTable = $(tableSelector);
    var tableElt = oTable[0];
    var tableSource = {
            "sourceType" : "json",
            "structure" : {
                "headings" : objectHeadings,
                "fields" : objectFields
            }
    }; 
    TableUtils.buildTableHtml(tableElt, tableSource.structure.headings);
    var tableToolsProps = null;

    if ('portalFile' == entityName) { // table does not allow row selection. 
        tableToolsProps = { 
            "aButtons" : []
        };
    } else if ('bspsample' == entityName) {
        tableToolsProps = {
            "aButtons"  : [{
                "sExtends": "copy",
                "mColumns": "all"
            },
            {   
                "sExtends": "csv",
                "mColumns": "all"
            },
            {
                "sExtends": "xls",
                "mColumns": "all"
            }],
            "sSwfPath"  : "media/table-tools-2.1.5/media/swf/copy_csv_xls.swf"
        };
    } else {
        tableToolsProps = {
            "sRowSelect": "single",
            "aButtons"  : []
        };
    }

    // this is to prevent DataTables from putting warnings or errors in an alert box.
    $.fn.dataTableExt.sErrMode = 'throw';
    try {
        oTable.dataTable({
            "bDestroy" : true,
            "bRetrieve" : true,
            "bJQueryUI" : true,
            "bProcessing" : true,
            "sPaginationType" : "full_numbers",
            "sAjaxSource" : initialUrl + "rest/"+ urlSuffix,
            "fnServerData": function ( sSource, aoData, fnCallback ) {
                $.ajax( {
                    "dataType": 'json',
                    "type": "GET",
                    "url": sSource,
                    "success": function(result){fnCallback(result);},
                    "failure":function(result){alert('failure');}
                } );
            },
            "sAjaxDataProp" : ajaxDataProperty,
            "aoColumns" : this.fieldsToColumnProperties(objectFields, objectHeadings, 
                hiddenFields, entityName, tableSelector, tableId),
            "sDom": 'T<"clear">lfrtip',
            "oTableTools": tableToolsProps,
            "oLanguage": {
                "sEmptyTable": "Please wait - Fetching records"
              },

              fnInitComplete: function(oSettings){
                  oSettings.oLanguage.sEmptyTable = emptyMessage;
                  $(oTable).find(".dataTables_empty").html(emptyMessage);
               }
        }); 
    } catch (err) {
        var messageHandler = new MessageHandler();
        messageHandler.showError("Internal client error: " + err + " Unable to create table for entity: " 
            + entityName);
    };

    // this is required for row_selected styles to work.
    oTable.addClass('display');
    oTable.show(); // in case it was hidden
    return oTable;
};

0 个答案:

没有答案