/ Връщане на елементи, които съвпадат като масив - ruby, тестване, webdriver, watir

Връща елементи, които съответстват на масив - рубин, тестване, webdriver, watir

Аз съм нов в света на Watir, използвалwebdriver и geb в предишна компания. Искам да знам дали Watir предлага някакъв метод, който е аналогичен на метода get_elements от webdriver. Вижте по-долу за пример.

Представете си, че следният html съществува в по-голяма страница

<div class="someClass">someText</div>
<div class="someClass">someMoreText</div>
<div class="someClass">evenMoreText</div>

Искам да направя някои твърдения срещу всяко от divs, като локализираме всички елементи на дадения клас и се прелистваме през тях. Използвайки webdriver, мога да го направя по следния начин:

elements = driver.get_elements(:css, ".someClass")
elements.each do |element|
//some assert on element
end

Осигурява ли Ватир еквивалентна конструкция? Не мога да намеря нищо полезно в документацията на Watir.

Отговори:

2 за отговор № 1

Можете да направите:

elements = driver.elements(:css => ".someClass")

Или ако знаете, че са всички divs, трябва да направите следното:

elements = driver.divs(:css => ".someClass")

И двата метода ще върнат колекция от елементи, които отговарят на вашите критерии. В първия случай той ще съответства на всеки тип маркер, като при втория случай резултатите ще бъдат ограничени до divs.

След това, с някое от горепосочените, можете да повторите по същия начин:

elements.each do |element|
//some assert on element
end

2 за отговор № 2

Вместо да използвате :css препоръчвам да използвате :class вместо това локатор, тъй като обикновено е по-бърз и прави тестовете ви по-четливи:

elements = driver.divs(:class => "someClass")

Също така, не забравяйте :id, :name, :text и други.