如何在Watir中选择nth-of-type

时间:2013-10-04 09:12:38

标签: css google-sheets watir

我有以下一行ruby代码,它会使Google Spreadsheet特定列中的第一个单元格闪现(我希望将文本作为脚本的一部分提取,而不是仅仅将其设为flash ...)

browser.element(:css => "[class=s24]").flash        #or
browser.element(:css => "s24").flash                #also works

我一直在努力尝试合并nth-of-type CSS选择器as described here

以下不起作用......这似乎是因为nth-of-type伪类doesn't work along with class elements: - (

任何人都可以建议我如何解决这个问题吗?

browser.element(:css => "[class=s24] nth-of-type(2)").flash
browser.element(:css => "[class=s24] td:nth-of-type(2)").flash

2 个答案:

答案 0 :(得分:2)

您是否有理由不想使用index?像这样:

browser.element(:class_name => "s24", :index => 2).flash

答案 1 :(得分:0)

我不知道flash的含义,但如果你能撤消,那么这里就是简单的解决方案。

假设你在同一个容器中有很多td,并且你想只定位某个类的第二个。{ 我会那样做..

.s24 td ~ .s24 td //selects TD2, TD3, TD4 ... of .s24 class
.s24 td ~ .s24 td ~ .s24 td //selects TD3, TD4 ... of .s24 class

所以,你可以这样做。

browser.element(:css => ".s24 td ~ .s24 td").flash //this will flash all TD2+
browser.element(:css => ".s24 td ~ .s24 td ~ .s24 td").Undoflash //This will undo the flash for TD3+

顺便说一句: 你说browser.element(:css => "s24").flash #also works 你的意思不是".s24"