[wtr-general] Re: Using .nil? to check the presence of an element

2019-04-15 Thread NaviHan
I have attached the html of the two line items on cart

The issue:-

*How do we check the presence of a button which can only be identified by a 
custom attribute when the button itself is not there.*

On Monday, 15 April 2019 16:03:51 UTC+10, NaviHan wrote:
>
> The shopping cart has two products, normal product and personalised product
>
> Against each normal product there is a "move to wishlist" button and there 
> is no "move to wishlist" button for personalised product.
>
> The test needs to validate the absence of the "move to wishlilist" button 
> for the personalised product. 
>
> The move to wishlist buttons are idetified by the collection
>
> buttons(:add_to_wishlist , :class => 'wishlist-container')
>
>
>
> and each button is identified by the attribute "data-variationgroup" which 
> containes the product ID passed to the test as a table
>
> The page source of 1st product which is a personalised one and hence no 
> move to wishlist button.
>
>
> 
> 
>  "dwfrm_cart_shipments_i0_items_i0_deleteProduct" value="9351785508221" 
> data-item-position="0">
> 
> Remove
> 
> 
>
> 
>
>
>
> 2nd product which is a normal product
>
>
> 
>
>
> 
>  data-productname="Woven 
> Allycia Cold Shoulder Frill Wrap Dress" class="pointer wishlist-container"
> >
> 
> Move to wishlist
> 
> 
>
> 
>  "dwfrm_cart_shipments_i0_items_i1_deleteProduct" value="9351533603802" 
> data-item-position="1">
> 
> Remove
> 
> 
>
> 
>
>
> What would be the best way to check the absence of the "move to wishlist" 
> button for the 1st product?
>
> One of my team members is using a logic
>
>   def check_move_to_wishlist_link_presence product
> add_to_wishlist_elements.find{|el| el.data_variationgroup == product}.
> nil?
>   end
>
>
>
> this is calling nil on nil which return true.
>
> Is this a good way? I see an issue where this passes even when the product 
> itself is not there
>
>

-- 
-- 
Before posting, please read 
https://github.com/watir/watir_meta/wiki/Guidelines-for-Posting-to-Watir-General-Google-Group.
 
In short: search before you ask, be nice.

watir-general@googlegroups.com
http://groups.google.com/group/watir-general
watir-general+unsubscr...@googlegroups.com
--- 
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 watir-general+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.




















Personalised Traveller Backpack











Colour:
BLACK-GOLD







In Stock








$37.95

















Size:
OSFA











QTY



1















Remove

















Personalisation






Text: XX




Delivery Message














No change of mind returns on personalised products.  Please allow 2-3 additional days for delivery.
 































Woven Allycia Cold Shoulder Frill Wrap Dress











Colour:
BLACK







In Stock








$34.95

















Size:
M











QTY








1


















Move to wishlist






Remove
















[wtr-general] Re: Using .nil? to check the presence of an element

2019-04-15 Thread NaviHan






Move to wishlist






Remove





In the above html, if I represent the button 
*name="dwfrm_cart_shipments_i0_items_i1_deleteProduct"* as  
*buttons(:remove_line_items, 
:name => /deleteProduct/)* then can I reach the other button with 
*data-variationgroup="2002690-02" *using the preceding_sibling?

remove_line_items_elements.find{|el| el.value == 
"9351785508221"}.preceding_sibling.present?

Doesnt work though. If that the case I could have solved the original issue 
with this code..


On Monday, 15 April 2019 16:03:51 UTC+10, NaviHan wrote:
>
> The shopping cart has two products, normal product and personalised product
>
> Against each normal product there is a "move to wishlist" button and there 
> is no "move to wishlist" button for personalised product.
>
> The test needs to validate the absence of the "move to wishlilist" button 
> for the personalised product. 
>
> The move to wishlist buttons are idetified by the collection
>
> buttons(:add_to_wishlist , :class => 'wishlist-container')
>
>
>
> and each button is identified by the attribute "data-variationgroup" which 
> containes the product ID passed to the test as a table
>
> The page source of 1st product which is a personalised one and hence no 
> move to wishlist button.
>
>
> 
> 
>  "dwfrm_cart_shipments_i0_items_i0_deleteProduct" value="9351785508221" 
> data-item-position="0">
> 
> Remove
> 
> 
>
> 
>
>
>
> 2nd product which is a normal product
>
>
> 
>
>
> 
>  data-productname="Woven 
> Allycia Cold Shoulder Frill Wrap Dress" class="pointer wishlist-container"
> >
> 
> Move to wishlist
> 
> 
>
> 
>  "dwfrm_cart_shipments_i0_items_i1_deleteProduct" value="9351533603802" 
> data-item-position="1">
> 
> Remove
> 
> 
>
> 
>
>
> What would be the best way to check the absence of the "move to wishlist" 
> button for the 1st product?
>
> One of my team members is using a logic
>
>   def check_move_to_wishlist_link_presence product
> add_to_wishlist_elements.find{|el| el.data_variationgroup == product}.
> nil?
>   end
>
>
>
> this is calling nil on nil which return true.
>
> Is this a good way? I see an issue where this passes even when the product 
> itself is not there
>
>

-- 
-- 
Before posting, please read 
https://github.com/watir/watir_meta/wiki/Guidelines-for-Posting-to-Watir-General-Google-Group.
 
In short: search before you ask, be nice.

watir-general@googlegroups.com
http://groups.google.com/group/watir-general
watir-general+unsubscr...@googlegroups.com
--- 
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 watir-general+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.