我试图通过使用类'menu-item-text'迭代一些跨度来找到导航链接.我的目标是比较span标签内的内容,看看它是否是正确的点击导航控件(没有硬件ID.)我的代码是这样的:
navlinks = @browser.spans(:class, 'menu-item')
navlinks.each do |this|
puts "'#{this.text}'"
if this.text == link_name
this.click
break
end
Run Code Online (Sandbox Code Playgroud)
我知道我确实得到了正确的元素.但是,文本始终为空字符串.我的第二个想法是使用.html而不是.text,但返回的内容如下:
<span class="menu-item">Insights</span>
Run Code Online (Sandbox Code Playgroud)
我想要的是跨度内的"见解"文本,而不是包含标记标记的完整html.我也尝试过使用this.span.text,但这也不起作用.
如何通过watir的内容抓取方法专门定位元素的内部html?
谢谢!
我正在用MVC4做一些练习.我的练习项目是一种简单的评论板/论坛,允许注册用户和匿名用户发表评论.
目前,我已经设置了代码,以便即使注册用户也可以在提交小名称+消息表单时输入他们想要的任何名称.我想要的是为注册用户禁用此行为,而不是使用从其登录信息中获取的用户名.
理想情况下,注册用户的名称框中已经加载了用户名并且无法编辑.当表单经过验证时,将使用此用户名,这确保名称和消息都不为空.
这是我的视图中的代码:
<div class="editor-label">
@Html.LabelFor(x => x.comment.Name)
</div>
<div class="editor-field">
@Html.ValidationMessageFor(x => x.comment.Name)
<br />
@if (User.Identity.Name=="") {
@Html.EditorFor(x => x.comment.Name)
} else {
@Html.EditorFor(x => x.comment.Name, Model.PosterName)
}
</div>
Run Code Online (Sandbox Code Playgroud)
请注意,Model.PosterName只是将用户的用户名保存为字符串.它不为null或为空.
如何编辑第二个EditorFor行,以便使用Model.PosterName作为默认选项?我是否应该使用DisplayFor代替不可编辑的行为?
我上面编写的代码没有任何值填充EditorFor.
谢谢!