我是Ruby和cheezy的页面对象测试自动化框架的新手,但到目前为止我做得很好。 我遇到的问题是我无法提交文本,也无法浮动到网页表格内的文本字段中。
我怀疑某些javascript阻止我输入数据。这些字段具有默认值。当测试脚本提交数据时,默认值不会被覆盖,但我的值只是内联使用默认值添加,当测试脚本继续到该行中的另一个字段时,将返回默认值!
我无法找到提交数据的方式。
我正在使用Selenium网络驱动程序。 env.rb内容:
require 'capybara/cucumber'
require 'page-object'
require 'selenium-webdriver'
require 'page-object/page_factory'
World(PageObject::PageFactory)
Before do
@browser = Selenium::WebDriver.for :firefox
@login_page = LoginPage.new(@browser)
end
After do
@browser.close
end
我从黄瓜表传递数据并尝试使用页面对象类文本字段方法提交:
Then(/^I submit input data table$/) do |table5|
data=table5.hashes
on WebPage do |page|
data.each_with_index do |column, index|
row = page.bill_table[index + 1]
row.price = column["Price"]
end
end
end
类中的方法定义:
indexed_property(:bill_table, [
[:text_field, :service_description, {:xpath => ".//tbody[@class='ui-sortable']//tr[%s]//td[3]/input"}],
[:text_field, :quantity, {id: 'output_invoice_items__quantity'}], # {:xpath => ".//tbody[@class='ui-sortable']//tr[%s]//td[4]/input"}],
[:text_field, :unit, {:xpath => ".//tbody[@class='ui-sortable']//tr[%s]//td[5]/input"}],
[:text_field, :price, {:xpath => ".//tbody[@class='ui-sortable']//tr[%s]//td[6]/input"}],
[:text_field, :discount, {:xpath => ".//tbody[@class='ui-sortable']//tr[%s]//td[7]/input"}],
])
如前所述,只有在同一行中的默认数据和自动脚本传递到新字段后输入价格数据,默认值才会返回! 当我手动尝试这个脚本格式化我输入浮点数时,在数字后添加“,00”。
我怀疑javascript会阻止输入数据。 关于如何解决这个问题的任何建议? 是否有一些选项可以禁止javascript搞乱数据?