首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Cucumber在html-head中搜索von字符串

用Cucumber在html-head中搜索von字符串
EN

Stack Overflow用户
提问于 2012-05-29 21:35:52
回答 1查看 740关注 0票数 1

我想知道如何检查HTML文档的头部是否存在带有黄瓜的特定字符串。实际上,我对特定的机器人指令很感兴趣,所以我在第一步启动一个浏览器(atm )并打开一个本地站点。

在第二步中,我检查了字符串的整个html代码:

代码语言:javascript
复制
@b.html.include?('<meta name="robots" content="noindex, follow">').should == true

看到我的场景在第二步失败了。(预期为true,got false)令人惊讶的是,对部分字符串的检查是成功的:

代码语言:javascript
复制
@b.html.include?('name="robots"').should == true

但一旦我查到

代码语言:javascript
复制
@b.html.include?('<meta name="robots"').should == true

或者只是

代码语言:javascript
复制
@b.html.include?('a name="robots"').should == true

我又搞错了。

所以,我认为白空间的存在导致了这种行为。只使用额外空格的快速检查

代码语言:javascript
复制
@b.html.include?(' name="robots"').should == true

测试结果是绿色的。

在文档正文中搜索整个句子

代码语言:javascript
复制
@b.html.include?('<h1>Yarr, that "is" supeb!</h1>').should == true

也在流逝。

我还尝试将h1标题移到文档的头部(测试仍在传递),并将元标记移动到正文(测试仍然失败)。

我在用watir-webdriver驱动的Firefox使用黄瓜1.2.0和ruby 1.9.3p0,并怀疑我是否做错了什么。实际上,我只有一个功能与这个简单的步骤和一个最小的html-站点与元数据和这个"Yarr“句子。没有栏杆,没有耙。OSX10.7请告诉我是否应该提供更多的信息…我花了好几个小时摆弄这些东西。

Edit1:添加了我检查的站点的HTML。

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
    <meta charset="utf-8">
    <link rel="stylesheet" media="screen" href="/public/stylesheets/main.css">
    <link rel="shortcut icon" type="image/png" href="/public/images/favicon.png">
    <script src="/public/javascripts/jquery-1.6.4.min.js" type="text/javascript" charset="utf-8"></script>
    <link rel="canonical" href="google.de">
    <meta name="robots" content="noindex, follow">
  </head>
<body>
    <h1>Yarr, that "ist" superb!</h1>
</body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-31 20:58:08

问题:

似乎HTML标记的属性并不总是按照编写它们的顺序排列。见此:

代码语言:javascript
复制
puts @b.html
#=> <!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"><head>
    <title>Home</title>
    <meta charset="utf-8" />
    <link href="/public/stylesheets/main.css" media="screen" rel="stylesheet" />
    <link href="/public/images/favicon.png" type="image/png" rel="shortcut icon" />
    <script charset="utf-8" type="text/javascript" src="/public/javascripts/jquery-1.6.4.min.js"></script>
    <link href="google.de" rel="canonical" />
    <meta content="noindex, follow" name="robots" />
  </head>
<body>
    <h1>Yarr, that "ist" superb!</h1>

</body></html>

请注意,<meta content="noindex, follow" name="robots" />与您的HTML的顺序不同。这就解释了为什么你的测试会给出结果。

建议解决方案:

假设您只关心特定的元标记出现在标头中(而不是标记写入的特定顺序),我建议使用:

代码语言:javascript
复制
b.head.meta(:name => 'robots', :content => 'noindex, follow').exists?.should == true
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10807046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档