如何使用 Watir (Ruby) 读取不可见元素中的文本?

2024-03-06

页面上有一个 div 不可见,但有一些我想捕获的值。在其上调用 text 会返回一个空字符串。

如何在不处理原始 html 的情况下获取显示的值?无论文本在浏览器中的可见性如何,我是否可以强制 .text 返回实际值?

irb(main):1341:0> d.first.visible?
=> false

irb(main):1344:0> d.first.html
=> "<div class=\"day\">7</div>"

irb(main):1345:0> d.first.text
=> ""

PS:有很多很多div(页面缓存响应并相应地显示它们)。我考虑过更改页面中的所有显示:无或单击以使它们可见,但如果可能的话,我希望避免这种情况。 如果不可能,则更改所有显示的解决方案将不是首选的解决方法。

PPS:该死,我试图让可见的东西超载? Watir::Element 类中的方法始终返回 true,但这并没有达到目的。

irb(main):1502:0> d.first.visible?
=> true

irb(main):1504:0> d.first.text
=> ""

对于 Watir 的新版本,现在有一个Element#text_content为您执行以下 JavaScript 的方法。

e = d.first
e.text_content
#=> "7"

对于旧版本的 Watir(原始答案):

您可以使用 JavaScript 来获取它。

e = d.first
browser.execute_script('return arguments[0].textContent', e)
#=> "7"

请注意,这仅适用于类似 Mozilla 的浏览器。对于类似 IE 的浏览器,您需要使用innerText。不过,如果你使用的是 watir-classic,那就简单了d.first.innerText (ie no execute_script必需的)。

使用属性值:

事实证明,您可以通过使用来使其变得更简单attribute_value方法。看起来它可以得到与javascript相同的属性值。

d.first.attribute_value('textContent')
#=> "7"

使用inner_html

如果元素只包含文本节点(即没有元素),也可以使用inner_html:

d.first.inner_html
#=> "7"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Watir (Ruby) 读取不可见元素中的文本? 的相关文章

  • 在初始化程序中重新加载命名空间常量

    今天遇到一个有趣的情况 我不确定如何解决 给定一个带有初始化器的 Rails 应用程序 file config initializers integrations rb Integrations CONFIGS key gt value f
  • 安装 Sass 时出错(Ruby 2.5.0.1、MSYS2 20161025.0.0)

    我尝试安装 Sass 我安装了Ruby and MSYS2在此之前 来自所有人的最新消息巧克力味 https chocolatey org choco install ruby choco install msys2 看来它们已正确安装 r
  • Ruby 反向柯里化:这可能吗?

    关于 Ruby 1 9 x 中的柯里化 我一直在某些地方使用它 并且可以像基本上支持 proc 参数的默认参数一样进行翻译 p proc x y z x y z p curry 1 gt returns a lambda p curry 1
  • RSpec 抛出分段错误

    有时我的测试套件会无缘无故地抛出分段错误 这是输出 Users Test rvm gems ruby 1 9 3 p392 gems activerecord 3 2 9 lib active record relation query m
  • ruby 中的 unshift + file.join

    unshift File join File dirname FILE vendor addressable 2 1 0 lib addressable uri 上面的代码是否访问具有以下路径的文件 vendor addressable 2
  • Mongoid 4 / MongoDB 2.4+“冻结”问题

    自从使用 Mongoid 维护与 mongodb 的连接以来 我遇到了一个奇怪的问题 我认为这最初是由于升级到 Rails 4 0 需要更新 Mongoid Moped 但我在其他基于 Rack 的应用程序 具体来说是 Sinatra 和
  • Rails_admin 中的范围作为过滤器

    我在我的应用程序中使用rails admin 我的模型上有一些范围 以下是一个示例 class User lt ActiveRecord Base scope unconfirmed where confirmed at IS NULL e
  • ruby 中的数组切片返回不同的结果 - nil 与空数组

    我对以下事实感到困惑 如果对数组进行切片length 它返回一个空数组 但长度大于该值时 它返回nil 这是什么原因呢 例如 arr 1 2 3 4 5 这样做 在哪里y gt arr length and x是任意正整数 返回nil ar
  • cron 爬虫使用 Ruby 中的 Google API 将数据插入 Google 电子表格的授权问题

    我的项目是每天早上 9 00 抓取某些网络数据并将它们放入我的 Google 电子表格中 并且它必须获得读取和写入某些内容的授权 这就是为什么下面的代码位于顶部 Google API CLIENT ID blah blah CLIENT S
  • 如何在 Rails 中制作动态下拉菜单?

    我正在开发一个电子商务项目 其中将有用于选择尺寸的单选按钮 我有一个数量下拉菜单 我想根据用户所选尺寸的可用库存使此下拉列表动态化 谁能告诉我如何在 Rails 上做到这一点 不会用大量的 javascript 扰乱我的视图文件 如果您使用
  • Watir 脚本偶尔返回 Net::ReadTimeout 错误

    我有一个 Watir 脚本 偶尔会意外地返回此错误 Net ReadTimeout 我搜索了这个错误并发现这个问题 https stackoverflow com questions 47452276 watir get sometimes
  • Ruby on Rails:simple_form + Twitter Bootstrap 未显示

    我正在为我的网站上的新用户创建一个简单的注册表单 我已经运行了 simple form bootstrap 的安装 rails g simple form install bootstrap 但是 它仍然没有显示并呈现为正常的 simple
  • 如何对 mongodb/mongoid 脚本进行基准测试,以比较两种不同的查询技术

    您对如何测试两种不同的 mongoid mongodb 查询实现的性能有什么建议吗 要比较的实现与以前的相关 问答 https stackoverflow com questions 10121977 extracting modellin
  • 使用“回形针”gem 和 Ruby on Rails 3 时出现问题

    我在运行 Snow Leopard v1 6 5 的 MacO 上使用 Ruby on Rails 3 我想使用 回形针 gem 所以我将它包含在我的 Gemfile 中 如下所示 gem paperclip gt 2 3 然后 在终端中运
  • 向 Rails 应用程序中的内置类添加方法

    我想向 Rails 应用程序中的 Array 类添加一个方法 我应该把这个方法放在哪里 编辑得更清楚 显然我把它放在某个文件中 但是我如何告诉 Rails 应用程序在哪里可以找到它 执行此操作的一种方法是在以下位置创建一个文件lib rai
  • ActiveSupport::TimeWithZone#to_date 返回错误日期

    我想要以下实例的日期部分ActiveSupport TimeWithZone 我用了to date函数 但它返回前一天的日期 例如 如果日期时间是2012 04 11 09 05 00 UTC 如果我打电话to date然后它返回2012
  • Selenium 找不到“spec”文件夹

    因此 我正在尝试建立本地系统来帮助完成仅使用 Rails 的雇主的现有项目 他们希望我主要关注 rspec 测试 因为该项目几乎可以正常运行 我需要充实他们错过的东西 但是 我无法获取 rake spec 来构建我的测试文件夹 事实上 测试
  • 什么是“太聪明”的 Ruby 代码示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在与一些程序员朋友进行讨论 他们说他们看到 Ruby 程序员 尤其是 编写了很多 太聪明 的代码 所以我想知道那会是什么样子 我指
  • GitHub API:标记提交所属(与 git describe --tag 并行)

    我正在使用 GitHub API 进行实验octokit https github com octokit octokit rb红宝石 我的目标是能够提取提交 SHA 所属的 标签 现在我可以使用命令行轻松地执行此操作 gt git des
  • 类、模块、它们的特征类和方法查找

    我们来开公开课吧Module并向其中添加一个方法 class Module def foo puts phew end end 我可以通过这样做来调用这个方法 Class foo 这是可以理解的 因为类Class is Class 其超类是

随机推荐

  • 符号链接检查 - Linux Bash 脚本

    我正在尝试创建一个脚本来搜索目录以查找指向不存在对象的符号链接 我的目录中有一个文件 其中的符号链接已删除 但由于某种原因 当我运行下面的脚本时 它说文件存在 bin bash ls l 1 if d 1 then while read f
  • MySQL 查询将值与前一行的值进行比较

    我一直在寻找 但一直无法找到解决方案 我知道这是可行的 但我只是还没有我需要的忍者 SQL 技能 我正在寻找此问题的解决方案 我有两个与股市数据相关的表 第一个是带有 ID 和股票代码 ID SYMBOL 的简单股票代码列表 第二个表包含每
  • JavaScript 样式/优化:String.indexOf() v. Regex.test()

    我最近遇到了这段 JavaScript 代码 if gt lt lt gt indexOf sCompOp 1 我很感兴趣 因为要编写这个测试 我会这样做 if gt lt lt gt test sCompOp 这只是风格上的差异 还是其他
  • 从对象数组中获取属性值数组

    有一个类叫Employee class Employee var id Int var firstName String var lastName String var dateOfBirth NSDate init id Int firs
  • iOS 拦截我的应用程序的所有网络流量?

    我想为来自我的应用程序的所有网络调用添加代理 就像是 func intercept request URLRequest if isOk request return the request continues as normally el
  • MySQL 错误:无法加载身份验证插件“caching_sha2_password”

    我刚刚在 macOS v10 13 4 上使用 Homebrew 安装了 MySQL Ver 14 14 Distrib 5 7 22 我运行了命令 brew install mysql 安装完成后 按照 Homebrew 的指示 我运行了
  • 通用列表的标准差? [复制]

    这个问题在这里已经有答案了 我需要计算通用列表的标准差 我会尝试包含我的代码 它是一个包含数据的通用列表 数据主要是浮点数和整数 这是我的代码 与其相关 但没有详细介绍 namespace ValveTesterInterface publ
  • 如何检查父元素中的点击,而不是子元素中的点击?

    Code HTML div class parent div class child div div JavaScript snip function parent click function alert This dialog shou
  • 在图表中显示统计上显着的差异

    我进行了六次处理的实验 每次处理都是在光明和黑暗中进行的 我使用 ggplot2 制作条形图 我想在图表中添加显着性字母 例如 LSD 结果 以显示每种治疗的光和暗之间的差异 但这给了我一个错误 有什么建议吗 data lt read ta
  • Python - 尝试使用 numpy.mean 时“无法使用灵活类型执行缩减”

    当我尝试计算列的平均值时 我一直处于无计可施的状态 因为我不断收到 无法使用灵活类型执行减少 文件读取得很好 任何行 列中都没有缺失值 但是当我放入行中 Brain wt mean np mean ifile axis 0 那么Python
  • 如何使用 re 查找连续、重复的字符

    我想找到字符串中所有连续的 重复的字符块 例如 请考虑以下情况 s r http www google com search ooo jjj 我想找到这个 www ooo and jjj 我尝试这样做 m re search r w 1 1
  • 如何使用 JSTL forEach 循环迭代 HashMap? [复制]

    这个问题在这里已经有答案了 在我的 Spring MVC 应用程序中 我从controllerServlet 返回了HashMap 现在我需要使用 JSTL 在我的 jsp 中打印它 请帮忙解决这个问题 我对这一切都是新手 尝试这个 假设我
  • “response.clear()”是否删除内容和标题?

    我需要知道是否Response Clear 只是清除内容还是也删除标题 换句话说 如果我使用Response Clear 我还需要使用Response ClearHeader 或不 AS MSDN http msdn microsoft c
  • C# 日期时间格式化

    我怎样才能转换我的DateTime反对这种日期格式 嗯 日 日 年年 dd 月 yyyy 我目前正在做 object GetDateTimeFormats D 1 ToString 这给了我 2012 年 1 月 31 日 但我应该能够得到
  • 获取具有完成渲染并完成运行脚本的页面的当前样式(可能是内联)的 HTML

    我需要使用服务器端应用程序获取完成渲染并完成运行脚本的页面的当前样式 可能是内联 的 HTML 该应用程序仅给出一个 URL 没有额外的信息 例如 cookie 没有 POST 没有阻碍表单 ETC 使用浏览器库临时运行的浏览器或独立实用程
  • 将图分为三部分,使三部分权重之和的最大值最小化

    我想将具有 N 个加权顶点和 N 1 个边的图分为三个部分 以使每个部分中所有顶点的权重总和的最大值最小化 这就是我想要解决的实际问题 http www iarcs org in inoi contests jan2006 Advanced
  • JavaScript 面向对象语法

    在 JavaScript 中执行面向对象的方式似乎有很多种 I like function ClassA ClassA prototype someFunc function a b c otherFunc function var c n
  • 具有多重采样的金属离屏绘图

    如何将图元渲染到离屏纹理中 而不是直接渲染到屏幕中 我有一组三角形和相应的颜色 我只想像在屏幕上一样绘制它们 但是绘制到屏幕外纹理中 我可以将其保存到文件中 有人可以给我看一个代码示例吗 好吧 我自己意识到了 这段代码完成了这项工作 唯一的
  • 如何使用 Selenium (Python) 抓取多个页面

    我见过几种从网站上抓取多个页面的解决方案 但无法使其在我的代码上运行 目前 我有这段代码 正在努力抓取第一页 我想创建一个循环来抓取网站的所有页面 从第 1 页到第 5 页 import pandas as pd from selenium
  • 如何使用 Watir (Ruby) 读取不可见元素中的文本?

    页面上有一个 div 不可见 但有一些我想捕获的值 在其上调用 text 会返回一个空字符串 如何在不处理原始 html 的情况下获取显示的值 无论文本在浏览器中的可见性如何 我是否可以强制 text 返回实际值 irb main 1341