我对黄瓜有点陌生,对一个测试用例很感兴趣。
页面上有一个表格,列出了一堆产品,其中一个单元格包含up&向下图形-这些控件是用户点击以在最终用户可以浏览的目录中向上或向下移动产品的排序顺序。
我如何选择表中列出的第二个产品,找到它的id&点击它的"向上"或向下链接?
以下是表格(为便于阅读而缩短):
<table id="product_container">
<tr>
<th>Order Position</th>
</tr>
<tr>
<td><a href="#" class="product_up" id="product_sku_goes_here">Up</a>
<a href="#" class="product_down" id="product_sku_goes_here">Down</a>
</td>
</tr>
</table>
谢谢你的建议!
HTML元素的id
属性在页面上必须是唯一的:http://www.w3.org/TR/html401/struct/global.html#h-7.5.2
选择产品最简单的方法是获得其行的参考:
class ProductsTable
def initialize(driver)
@driver = driver
end
def table
@driver.find_element(:id, "product_container")
end
def products
table.find_elements(:tag_name, "td").map{|element|
Products.new(element)
}
end
end
class Products
def initialize(element)
@elem = element
end
def up
@elem.find_element(:class, "product_up")
end
def down
@elem.find_element(:class, "product_down")
end
end
driver = Selenium::WebDriver.for :chrome
driver.get "http://link_to_testing_page"
tabl = ProductsTable.new(driver)
向上推第一个产品:
tabl.products.first.up.click
向下:
tabl.products.first.down.click
黄瓜步骤定义:
When /^I push product (d+) (.*)$/ do |product, where|
product = product.to_i - 1
tabl.products[product].send(where).click
end