I have the following code:
<tr>
<td Width="50%" align="left">
<span id="ctl00_lblTotalDesc">Ext. Subtotal</span></td>
<td Width="50%" align="right">
<span id="ctl00_lblTotalValue">100,087,000.00</span></td>
</tr>
I used the following to grab the value of the 2nd span element:
spanValue = $('#ctl00_lblTotalValue').text();
But this doesn't seem to work in Spock/Geb. I get the following error:
TypeError: $(...).text is not a function
What am I doing wrong
I get the following error if I use, $('#ctl00_lblTotalValue')
[object HTMLTableElement]
Firefox console was not useful so used Chrome console.
In Chrome: if I try $('#ctl00_lblTotalValue'), I get
<span id="ctl00_lblTotalValue">100,087,000.00</span>
But .text() - gives Type error: Object # has no method 'text'
It seems you have another js framework overriding the $ function. it means you have to use jQuery('...') instead. The other point you have to consider is, as far as I know in all js frameworks I've worked with, the $ function does the same thing, but sometimes it selects the first matched html element then when your output is like:
it means the html object is not a span element. try:
if the result was greater than 1, it mean you have more than one html element with this same id.
Simply try this:
Assuming that the value ct100 is a constant and is not generated by your server side application randomly.
Is "ctl00_lblTotalValue" the id you assigned to the span or is it a server-side control getting its ID auto-assigned by the environment?
For example, if I have this code in my .NET aspx page
it gets rendered in the html page as
If that is the case, I need to grab it in the jquery using this syntax
If yours is a server-side control, you may need to grab the text using