Site_Prism 使用 page.find 时未找到 POM 元素
Site_Prism not finding POM elements when page.find used
所以我已经使用 SitePrism 为 POM 设置了一个 Capybara、Cucumber 项目,并且在大多数情况下它都能正常工作。当我使用:
Then('Find object name') do
expect(@page).to have_object_name
end
它工作得很好,但是当我开始使用时:
Then('Assign object names text to a variable') do
expect(@page).to have_object_name
valueA = @page.find('object_name').text
end
这不起作用并抛出错误
Unable to find css "object_name" (Capybara::ElementNotFound)
但是,如果我使用:
Then('Assign object names text to a variable') do
expect(@page).to have_object_name
valueA = @page.find(:xpath, 'object_name_XPath').text
end
这也很好,但这种做法违背了 POM 的要点,因为它会大大增加维护工作。
我想我一定是遗漏了一些东西才能从我的页面中找到 page.find 找到 object_name,但我绕着它跳来跳去,到处搜索,但似乎无法找出问题所在出去。
帮助? :)
@page.find
采用 CSS 选择器(默认情况下 - 它实际上只是 Capybara find
方法),而不是 SitePrism element
.[=18 的名称=]
如果@page 是一个 SitePrism::Page
或 SitePrism::Section
对象,并且您在其上定义了元素,那么您只需在 @page
上作为方法访问该元素 - 请参阅 https://github.com/natritmeyer/site_prism#accessing-the-individual-element
@page.object_name
所以我已经使用 SitePrism 为 POM 设置了一个 Capybara、Cucumber 项目,并且在大多数情况下它都能正常工作。当我使用:
Then('Find object name') do
expect(@page).to have_object_name
end
它工作得很好,但是当我开始使用时:
Then('Assign object names text to a variable') do
expect(@page).to have_object_name
valueA = @page.find('object_name').text
end
这不起作用并抛出错误
Unable to find css "object_name" (Capybara::ElementNotFound)
但是,如果我使用:
Then('Assign object names text to a variable') do
expect(@page).to have_object_name
valueA = @page.find(:xpath, 'object_name_XPath').text
end
这也很好,但这种做法违背了 POM 的要点,因为它会大大增加维护工作。
我想我一定是遗漏了一些东西才能从我的页面中找到 page.find 找到 object_name,但我绕着它跳来跳去,到处搜索,但似乎无法找出问题所在出去。 帮助? :)
@page.find
采用 CSS 选择器(默认情况下 - 它实际上只是 Capybara find
方法),而不是 SitePrism element
.[=18 的名称=]
如果@page 是一个 SitePrism::Page
或 SitePrism::Section
对象,并且您在其上定义了元素,那么您只需在 @page
上作为方法访问该元素 - 请参阅 https://github.com/natritmeyer/site_prism#accessing-the-individual-element
@page.object_name