Hey Raymond, I've worked with Angular 1.x for a few years. I'm pretty sure the problem you're having is that Watir is changing the input field without and not dispatching the input events that Angular uses to register the ng-change handler. I've made a simple example for you on JSBin: https://jsbin.com/guferad/edit?html,js,output
You'll see that clicking the button and changing the text field value doesn't change the counter. If you fire an InputEvent on the text field after, it'll pick up and increment as expected. While the short-term fix would be to execute JavaScript to dispatch an event on that field, it makes sense to me to have a discussion with the team to see if we should be mimicking the human generated events in general. As you continue to work with Angular, you'll probably find more cases where changing the DOM leads to a disconnect from Angular's data model. On Friday, 13 October 2017 05:43:50 UTC-4, Raymond Raymundo wrote: > > Yes, we are using angularJS. The method file_field.set doesn't work. as I > mentioned the type attribute of the field is set to 'text'. And If I try to > use text_field it just paste the path + file on the field without > triggering the upload. Here is the HTML for the field > > <div class="input-group ng-pristine ng-untouched ng-invalid > ng-invalid-required" required="" ngf-select="" ngf-change= > "uploadResume($file)" ng-model="resume" name=" resume "> > <input id="inputResume" class="form-control ng-pristine ng-untouched > ng-valid" type="text" placeholder="Select a file..." ng-model="resume.name > "/> > <span class="input-group-btn"> > <button class="btn btn-default">Select File </button> > </span> > </div> > > And this is what I execute > > > path = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) > $cv_path = path + '/archives/Sample.doc' > @browser.text_field(id: 'inputResume').set($cv_path.to_s) > > > > > On Wednesday, October 11, 2017 at 1:10:09 AM UTC+8, Raymond Raymundo wrote: >> >> So i'm trying to upload a file to a field that is set to readonly >> >> $browser.text_field(id: 'inputResume').set($cv_path.to_s) >> >> >> >> And I get error >> >> Watir::Exception::ObjectReadOnlyException (Watir::Exception:: >> ObjectReadOnlyException) >> >> >> Is there a way around this? >> >> >> -- -- Before posting, please read http://watir.com/support. In short: search before you ask, be nice. [email protected] http://groups.google.com/group/watir-general [email protected] --- You received this message because you are subscribed to the Google Groups "Watir General" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
