# Mechanize confusion

**URL:** <https://www.ruby-forum.com/t/mechanize-confusion/132599>\
**Category:** Ruby\
**Created:** [March 21, 2008, 7:08pm UTC](https://www.ruby-forum.com/t/mechanize-confusion/132599 "2008-03-21T19:08:00Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Glen\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/34f0e0/32.png) [@Glen\_H](https://www.ruby-forum.com/u/Glen_H)\
**Post date:** [March 21, 2008, 7:08pm UTC](https://www.ruby-forum.com/t/mechanize-confusion/132599/1 "2008-03-21T19:08:00Z")

</div>

I will admit I’ve never used Mechanize before and if I am asking  
painfully  
obvious feel free to push me out in traffic, however…

I have an odd issue. I have grabbed a form off of CDW’s site and am  
trying  
to fill out the proper info. The form shows the select list I want  
“\_ct19”  
but when I try to manipulate it mechanize acts like it doesn’t exist

Here is the form:

#\<WWW::Mechanize::Form  
{name “HubPage”}  
{method “POST”}  
{action “default.aspx?hubpage=%2fhardware%2fprinters.html”}  
{fields  
#\<WWW::Mechanize::Form::Field:0x33f0054  
@name="\_\_VIEWSTATE",  
@value=

“/wEPDwUJODExNjM3MjQ1D2QWBAIBDxYCHgRUZXh0BRY8ZGl2IGlkPSdjLWNvbnRhaW5lcic+ZAI  
DD2QWCgIBDw8WAh4HVmlzaWJsZWdkZAICDw8WAh8BZ2RkAgUPDxYCHwFnZBYCAgEPZBYCAgEPZBYCZg9  
kFgJmD2QWCGYPZBYCZg8QZGQWAWZkAgEPZBYCZg8QZGQWAGQCAg9kFgJmDxBkZBYAZAIDD2QWAmYPDxY  
CHwFoZGQCBg8PFgIfAWdkZAIHDw8WAh8BZ2RkZIrvUv5EI5fPxvnmGvx9951XbRWm”\>  
#\<WWW::Mechanize::Form::SelectList:0x3390af0  
@name="\_ctl9",  
@options=  
[#\<WWW::Mechanize::Form::Option:0x33844e4  
@select\_list=#\<WWW::Mechanize::Form::SelectList:0x3390af0 …\>,  
@selected=true,  
@text=“Select Brand”,  
@value=""\>,  
#\<WWW::Mechanize::Form::Option:0x3383ef4  
@select\_list=#\<WWW::Mechanize::Form::SelectList:0x3390af0 …\>,  
@selected=false,  
@text=“Brady Industries”,  
@value=“7633”\>,  
#\<WWW::Mechanize::Form::Option:0x33835f8  
@select\_list=#\<WWW::Mechanize::Form::SelectList:0x3390af0 …\>,  
@selected=false,  
@text=“Brother International”,  
@value=“5074”\>,  
.  
.  
. Options  
redacted for sanity’s sake.  
.  
.  
#\<WWW::Mechanize::Form::Option:0x2d60d9c  
@select\_list=#\<WWW::Mechanize::Form::SelectList:0x3390af0 …\>,  
@selected=false,  
@text=“Xerox Printers”,  
@value=“6177”\>,  
#\<WWW::Mechanize::Form::Option:0x2d608ec  
@select\_list=#\<WWW::Mechanize::Form::SelectList:0x3390af0 …\>,  
@selected=false,  
@text=“Zebra Technologies”,  
@value=“6186”\>],  
@value=[]\>  
#\<WWW::Mechanize::Form::SelectList:0x2d5f76c  
@name="\_ctl12",  
@options=[],  
@value=[]\>  
#\<WWW::Mechanize::Form::SelectList:0x2d5ddcc  
@name="\_ctl15",  
@options=[],  
@value=[]\>}  
{radiobuttons}  
{checkboxes}  
{file\_uploads}  
{buttons}\>  
=\> nil  
irb(main):050:0\>

When I try to get details on either \_ct19 or \_VIEWSTATE I get an empty  
array  
back:

toner\_form.fields.name(’\_ct19’)  
=\> []

toner\_form.fields.name(’\_VIEWSTATE’)  
=\> []

However with \_ctl12 and \_ctl15 everything appears to be happy:

toner\_form.fields.name(’\_ctl15’)  
=\> [#\<WWW::Mechanize::Form::SelectList:0x2d5ddcc @value=[], @options=[],  
@name="\_ctl15"\>]

toner\_form.fields.name(’\_ctl12’)  
=\> [#\<WWW::Mechanize::Form::SelectList:0x2d5f76c @value=[], @options=[],  
@name="\_ctl12"\>]

## Does anyone have any idea how I can get to the select field I need?

“Hey brother Christian with your high and mighty errand, Your actions  
speak  
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

---

<div class="post-metadata">

**Author:** ![Glen\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/34f0e0/32.png) [@Glen\_H](https://www.ruby-forum.com/u/Glen_H)\
**Post date:** [March 21, 2008, 9:32pm UTC](https://www.ruby-forum.com/t/mechanize-confusion/132599/2 "2008-03-21T21:32:06Z")

</div>

On Sat, Mar 22, 2008 at 03:06:00AM +0900, Glen H. wrote:

> {name “HubPage”}  
> CHwFoZGQCBg8PFgIfAWdkZAIHDw8WAh8BZ2RkZIrvUv5EI5fPxvnmGvx9951XbRWm"\>  
> @selected=false,  
> redacted for sanity’s sake.  
> @text=“Zebra Technologies”,  
> {radiobuttons}
> 
> @name="\_ctl15"\>]
> 
> toner\_form.fields.name(’\_ctl12’)  
> =\> [#\<WWW::Mechanize::Form::SelectList:0x2d5f76c @value=[], @options=[],  
> @name="\_ctl12"\>]
> 
> Does anyone have any idea how I can get to the select field I need?

It looks like you have a typo.

toner\_form.fields.name(’\_VIEWSTATE’)

should probably be:

toner\_form.fields.name(’\_\_VIEWSTATE’)

Note the two underscores.

Hope that helps.

---

<div class="post-metadata">

**Author:** ![Glen\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/34f0e0/32.png) [@Glen\_H](https://www.ruby-forum.com/u/Glen_H)\
**Post date:** [March 21, 2008, 9:48pm UTC](https://www.ruby-forum.com/t/mechanize-confusion/132599/3 "2008-03-21T21:48:35Z")

</div>

On Mar 21, 2008, at 4:31 PM, Aaron P. wrote:

> > ```
> > @select_list=#<WWW::Mechanize::Form::SelectList:0x3390af0 ...>,
> > @selected=false,
> > @selected=false,
> > 
> > ```
> > 
> > @options=[],  
> > irb(main):050:0\>  
> > toner\_form.fields.name(‘\_VIEWSTATE’)  
> > =\> [#\<WWW::Mechanize::Form::SelectList:0x2d5f76c @value=[],  
> > should probably be:
> 
> toner\_form.fields.name(‘\_\_VIEWSTATE’)
> 
> Note the two underscores.
> 
> Hope that helps.
> 
> –  
> Aaron P.  
> [http://tenderlovemaking.com/](http://tenderlovemaking.com/)

And its \_ctl9 not \_ct19. (or ‘\_CTL9’.downcase not ‘\_ct’+ 19.to\_s)

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![Glen\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/34f0e0/32.png) [@Glen\_H](https://www.ruby-forum.com/u/Glen_H)\
**Post date:** [March 21, 2008, 10:12pm UTC](https://www.ruby-forum.com/t/mechanize-confusion/132599/4 "2008-03-21T22:12:42Z")

</div>

On Fri, Mar 21, 2008 at 2:47 PM, Rob B.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > > but when I try to manipulate it mechanize acts like it doesn’t exist  
> > > @value=  
> > > @name=“\_ctl9”,  
> > > @value=“7633”\>,  
> > > .  
> > > @value=[]\>  
> > > {file\_uploads}  
> > > toner\_form.fields.name(‘\_ct19’)  
> > > @name=“\_ctl15”\>]
> > 
> > –

Thanks for being gentle guys. Might be time for a new monitor or  
glasses.

–  
“Hey brother Christian with your high and mighty errand, Your actions  
speak  
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)
