我有我的 css 别名,如:
module MyPage
def locator(key, *options)
hash = {
"FIRST_TABLE_CELL_HREF" => [ :css => '#my-table td:nth-child(1):first a']
}
end
我想点击那个别名:
@page.find("FIRST_TABLE_CELL_HREF").when_present.right_click
问题:这是一个 Javascript 风格的别名,所以它不起作用。
问题: 如何编写相同的 Ruby 风格的 css 别名?
P.S. $('#my-table td:nth-child(1):first a')
在浏览器控制台中运行良好。
对于@TitusFortner,当您想要选择特定元素时,情况确实如此。但是我正在使用一些业务级别的语言(在我的例子中是小 cucumber ),我想写一个通用的指令。它看起来像 当我右键单击元素“FIRST_TABLE_CELL_HREF”时
。该指令将映射到:
When(/^I right click(?: on|)(?: the|) "([^\"]*)"$/i) do |scope|
@page.find(scope).when_present.right_click
end
其中@page = @browser.visit(SomePage)
,其中依次为@browser = BrowserBase.new start_browser(ENV['BROWSER'])
最佳答案
有了 Watir,您通常甚至不需要使用 css
browser = Watir::Browser.new
表格中的第一个链接:
browser.table(id: 'my-table').link
表中第一个数据单元格的链接:
browser.table(id: 'my-table').td.link
如果出于某种原因它必须只是 css:
browser.link(css: '#my-table a')
此外,如果您的表位于 iframe 的上下文中,则必须显式声明它,因为驱动程序只能看到顶级浏览上下文,除非专门切换到。对于 Watir,这会起作用:
browser.iframe(id: 'iframe_id').table(id: 'my-table').link
这行不通:
browser.link(css: '#iframe_id #my-table a')
关于css - Watir:第一个表格单元格内的 a-href 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27190679/