0

我正在尝试刷新 h2 标签中包含的文本。但是,当 h2 标记具有 class 属性时,我无法这样做。

我能够检索包含在 h2 标记中的文本,但我似乎无法刷新文本。请帮忙。

源代码:

<div class="nextJump12 margin-bottom">
  <h2 class="white-gradient-bg border round-border">Next to jump</h2>

Watir-webdriver 代码:

@browser.div(:class => "nextJump12 margin-bottom").flash
@nexttojump = @browser.div(:class => "nextJump12 margin-bottom")
puts @nexttojump.h2.text
4

1 回答 1

0

正如 Željko 提到的,flash只需更改正在闪烁的元素的背景颜色。

在 html 中,元素继承其父母/祖先的样式。但是,元素可以通过指定自己的样式(类或内联)来覆盖其父级的样式。

例如,假设您的元素是:

<div style="background-color:blue;">
  <h2>Next to jump</h2>
</div>

然后 h2 将继承 div 元素的背景颜色 - 即以蓝色背景显示。

现在假设 h2 指定了它自己的背景颜色:

<div style="background-color:blue;">
  <h2 style="background-color:green;">Next to jump</h2>
</div>

在浏览器中,您只会在 h2 周围看到绿色背景,而不是蓝色背景。这是因为 h2 的样式优先于从 div 继承的样式。

这意味着当您这样做时:

browser.div.flash

你不会看到任何变化。div 的背景会在红色和蓝色之间变化,但最终 h2 的样式总是会覆盖它。

因此,您应该尝试刷新 DOM 中的最低元素,在本例中为 h2. 这样,无论 h2 继承或为自己定义什么样式,flash 样式更改都将具有最高优先级。

browser.div.h2.flash

所以在你的代码中,我建议尝试:

browser.div(:class => "nextJump12 margin-bottom").h2.flash
于 2013-10-22T10:57:48.273 回答