O Excel VBA controla a página da Web com Knockout; parece funcionar; mas nada é salvo

Resumo:

Basicamente, tentando editar um site com o Excel VBA. As edições parecem funcionar, mas quando eu uso o botão Salvar, nada é salvo. Eu sei que o botão Salvar funciona, explicado abaixo. Então, por que meus dados atualizados, visíveis na tela, estão sendo salvos?

A história:

Eu tenho esse código no qual trabalho há algum tempo com o Excel VBA. Ele abre uma página da web no Internet Explorer, navega onde eu quero, preenche um monte de dados, todos os que aparecem na tela, usando vários métodos, como:

For Each objElement In objElementColl
ExtractedName = objElement.outerHTML

If InStr(ExtractedName, "NewPermit") > 0 Then
objElement.Checked = True

e

Set DropDown = objHTML.getElementById("ProjectFile-AccreditedCertifierId")
DropDown.selectedIndex = 1

ou

objHTML.getElementsByName(ElementName)(0).Value = ValueCheck

Tudo isso funciona muito bem e muda na tela. Em seguida, clique em salvar usando:

Set objElementColl = objHTML.getElementsByClassName("btn")

For Each objElement In objElementColl
    ExtractedName = objElement.outerHTML

    If InStr(ExtractedName, "click: save, enable:") > 0 Then
        objElement.Click
        ExtractedName = 1
        Exit For
    End If
Next

O que novamente funciona bem. O problema é que ele realmente não salva minhas alterações do código das três peças acima. O que eu tentei é

a) Pause meu código e clique manualmente em Salvar (mesmo problema)

b) Pause meu código, altere manualmente uma caixa de seleção e execute o código para salvar (salva a alteração manual, mas não as codificadas

c) Pause o código e altere manualmente uma caixa e salve manualmente (somente a caixa alterada manualmente é salva)

Então, de cima, parece que meu clique salvo funciona, mas por algum motivo, embora as caixas sejam visivelmente alteradas e preenchidas usando o código, existe um espaço entre o visível e o plano de fundo.

Enfim, algum código fonte HTML. É o que o chrome me mostra ao inspecionar um elemento que estou alterando:

    <fieldset>
        <legend>Proposal</legend>

        <div class="col-xs-12 col-sm-8 col-md-6">
            <div class="row">
                <div class="col-xs-2 form-group">
                    <label for="ProjectFile_ProposalLot">Lot</label><input class="form-control" data-bind="textInput: ProjectFile().ProposalLot" maxlength="100" name="ProjectFile-ProposalLot" type="text" />
                </div>
                    <div class="col-xs-2 form-group" data-bind="visible: ProjectFile().StateId() != 7 && ProjectFile().StateId() != 5">
                        <label data-bind="text: ProjectFile().ProposalDpLabel()"></label>
                        <input class="form-control" data-bind="textInput: ProjectFile().ProposalDp" maxlength="100" name="ProjectFile-ProposalDp" type="text" />
                        </div>

Também procurei no código fonte inteiro a página ... Acredito que isso possa ser importante, mas não sou um codificador HTML. Eu diminuí um pouco

var ProjectFileEditViewModel=(function(){__extends(ProjectFileEditViewModel,ViewModel.Model);function ProjectFileEditViewModel(){ProjectFileEditViewModel.__super__.constructor.apply(this,arguments);};ProjectFileEditViewModel.prototype.fields=function(){return {"Id":new ViewModel.NumberField(0),"StateId":new ViewModel.NumberField(0),"DefaultOfficeAddressId":new ViewModel.ObservableField(),"Name":new ViewModel.ObservableField(),"ExistingApprovalDate":new ViewModel.DateField("DD/MM/YYYY"),"ProjectClosed":new ViewModel.ObservableField(),"ProposalAddress":new ViewModel.ObservableChildField(exports.AddressViewModel,this),"Zoning":new ViewModel.ObservableField(),"ProposalLot":new return ProjectFileEditViewModel;})();if(exports.ProjectFileEditViewModel==null)exports.ProjectFileEditViewModel=ProjectFileEditViewModel;

Há também isso ... novamente por muito mais tempo:

Buildaform.model=new Buildaform.ProjectPageViewModel({ ... ,"ProposalLot":null .... }

Acho que este último tem algo a ver com isso, e não sei se posso mudar.

Para as más notícias, não posso divulgar o endereço ou o código-fonte do site publicamente. Mas, por favor, me dê um PM e eu posso resolver algo.

questionAnswers(2)

yourAnswerToTheQuestion