The accessors do not provide a mechanism for filtering the element
collection. In other words, the exception is from
`product_line_items_in_bag_elements(:"data-product-id" => '9350486827327')`.
You can filter the elements manually using `#find`:
class MyPage
include PageObject
elements(:product_line_items_in_bag, :name => /^dwfrm_cart_shipments/) #
note that you need a regex here
end
page = MyPage.new(browser)
products = page.product_line_items_in_bag_elements
product = products.find { |e| e.data_product_id == '9351533670743' }
product.select('2')
However, it'd be easier to skip the accessor and define a method. This
allows locating the select list directly, which can save execution time.
class MyPage
include PageObject
def product_element(product_id)
browser.select_list(data_product_id: product_id)
end
end
Justin
On Wednesday, July 11, 2018 at 6:22:20 AM UTC-4, NaviHan wrote:
>
> Hi Justin/Titus
>
> There is a correction in the html code
>
> <div class="row cart-product-row ">
> ----
> ----
> ----
> <select class="input-select has-value custom-input valid"
> id="dwfrm_cart_shipments_i0_items_i0_quantity"
> name="dwfrm_cart_shipments_i0_items_i0_quantity"
> data-product-id="9350486558733" data-item-position="1" aria-invalid="false">
>
>
> <option value="2">2</option>
>
> <option value="3">3</option>
>
> <option value="4">4</option>
>
> <option value="5">5</option>
>
> <option value="6">6</option>
>
> <option value="7">7</option>
>
> <option value="8">8</option>
>
> <option value="9">9</option>
>
> <option value="10">10</option>
>
> <div class="row cart-product-row ">
> ----
> ----
> ----
> <select class="input-select has-value custom-input"
> id="dwfrm_cart_shipments_i0_items_i1_quantity"
> name="dwfrm_cart_shipments_i0_items_i1_quantity"
> data-product-id="9351533670743" data-item-position="2">
>
>
> <option value="2">2</option>
>
> <option value="3">3</option>
>
> <option value="4">4</option>
>
> <option value="5">5</option>
>
> <option value="6">6</option>
>
> <option value="7">7</option>
>
> <option value="8">8</option>
>
> <option value="9">9</option>
>
> <option value="10">10</option>
>
> <div class="row cart-product-row ">
> ----
> ----
> ----
> <select class="input-select has-value custom-input valid"
> id="dwfrm_cart_shipments_i0_items_i2_quantity"
> name="dwfrm_cart_shipments_i0_items_i2_quantity"
> data-product-id="9351533671290" data-item-position="3" aria-invalid="false">
>
>
> <option value="2">2</option>
>
> <option value="3">3</option>
>
> <option value="4">4</option>
>
> <option value="5">5</option>
>
> <option value="6">6</option>
>
> <option value="7">7</option>
>
> <option value="8">8</option>
>
> <option value="9">9</option>
>
> <option value="10">10</option>
>
>
>
> On Tuesday, 3 July 2018 21:48:19 UTC+10, NaviHan wrote:
>>
>> This is my first post here. Apologies if there is a mistake.
>>
>> I have a section of a page as attached in the pic.
>>
>>
>> The html code for the section is as follows
>> Enter code here...<div class="small-12 applied-evouchers">
>> <div class="row applied-voucers-list">
>> <div class="small-6">
>> <span>9830318220466018</span>
>> </div>
>> <div class="small-6 small-text-right">
>> <button type="button" class="remove-gift-cert"
>> data-gift-id="9830318220466018">
>> <span class="icon icon-cross-standard-small-black"></span>
>> <span class="underline remove-evoucher-button-text">Remove</span>
>> </button>
>> </div>
>> </div>
>> <hr>
>> <div class="row applied-voucers-list">
>> <div class="small-6">
>> <span>9831228610400260</span>
>> </div>
>> <div class="small-6 small-text-right">
>> <button type="button" class="remove-gift-cert"
>> data-gift-id="9831228610400260">
>> <span class="icon icon-cross-standard-small-black"></span>
>> <span class="underline remove-evoucher-button-text">Remove</span>
>> </button>
>> </div>
>> </div>
>> <hr>
>> </div>
>>
>> I need to assert two value here
>>
>> 1. The vouchers applied, which are 9830318220466018 & 9831228610400260
>> 2. The span "Remove"
>>
>> The issue Im facing is as these two divs are identical and 1 & 2 doesnt
>> have a unique identifier I cannt locate them using PageObjects.
>>
>> I can locate the element using the following Java script
>> document.getElementsByClassName('applied-voucers-list')[0].innerText;
>> This returns
>> Enter code here..."9830318220466018
>> Remove
>> "
>>
>> I tried to capture this with the code
>> Enter code here...@var =
>> @browser.execute_script("document.getElementsByClassName('applied-voucers-list')[0].innerText;")
>>
>> This isnt working
>>
>> Any clue?
>>
>>
--
--
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.
[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.