如何使用 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) 读取不可见元素中的文本? 的相关文章

  • 用 ruby​​ 中的数组内容替换字符串?

    String Test string Test array link1 link2 如何替换这样的字符串 输出应该是String link1 string link2 字符串 gsub 可以返回一个枚举器 所以这很简单 string gsu
  • 需要帮助获取嵌套的 ruby​​ 哈希层次结构

    我有哈希深层嵌套哈希 我希望每个键的层次结构 父到子 作为数组 例如 hash properties gt one gt extra headers gt type gt object type1 gt object2 entity gt
  • 强制 DataMapper 断开与 postgresql 的连接

    我有一个测试 正在 postgresql 中创建和销毁多个数据库 为了能够删除数据库 我需要告诉 DataMapper 断开连接 我似乎找不到任何有关如何执行此操作的文档 DataMapper Adapters PostgresAdapte
  • ActiveRecord oracle_enhanced 适配器无法加载 ruby​​-oci8 库

    rails g scaffold失败 但 oci 脚本和 irb 数据查询有效 无法弄清楚出了什么问题 rails g scaffold table field1 integer field2 string invoke active re
  • 从 ActiveRecord 获取表名

    I used ActiveRecord Base set table name在动态创建的 ActiveRecord 类上设置我的表名称 现在我需要知道稍后如何获得该值 api 文档没有提及如何执行此操作 另外 我无法从 ActiveRec
  • 如何从 Ruby 检查具有特定 pid 的进程是否正在运行?

    如果有多种方法 请列出 我只知道一个 但我想知道是否有一种更干净的 Ruby 方式 之间的区别Process getpgid and Process kill方法似乎是当 pid 存在但由另一个用户拥有时发生的情况 Process getp
  • 如何让 Sinatra 通过 HTTPS/SSL 工作?

    正如标题所示 谷歌没有提供任何与此相关的有用信息 如何为 Sinatra 应用程序设置和配置 HTTPS SSL 如何创建 HTTPS 路由 我以前从未在我的应用程序中使用过 HTTPS 也没有调整 Rack 其他内容的经验 所以我很欣赏详
  • 使用 Ruby 获取 AWS 区域名称

    我正在为 AWS 开发 Rails 应用程序 并希望为区域名称创建下拉菜单 例如 us east 1 等 如果有人已经创建了 gem 来获取它们 我想使用它 有人知道这样的 gem 或有用的 API 吗 适用于 Ruby 的 AWS 开发工
  • Ruby on Rails 最酷的功能是什么,为什么选择它? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我问这个问题之前 我浏览了 SO 上 Ruby on Rails 的搜索结果 找不到太多 但以下 在此页面上找到 https stackove
  • 如何使用 Ruby 2.7.0 修复 Rails 的警告消息

    有没有人解决这个问题Ruby 2 7 0 I used rbenv并安装了 Ruby v2 7 0 然后使用创建了一个 Rails 项目Rails v6 0 2 1 目前 通过运行之一 rails s rails s u puma rail
  • (在 Ruby 中)允许混合类方法访问类常量

    我有一个为其定义常量的类 然后我定义了一个类方法来访问该类常量 这很好用 一个例子 usr bin env ruby class NonInstantiableClass Const hello world class lt lt self
  • 无需别名的 Ruby YAML 编写

    我正在从 ruby 将数据写入 yaml 文件 并且经常在该文件上添加别名 像 id001 somekey somevalue id001 就我而言 我使用 yaml 文件来aid可读性并将名称添加到文件中的值 因为现有数据只是 没有键的分
  • ruby 的 String .hash 方法如何工作?

    我只是红宝石的新手 我见过一个字符串方法 String hash 例如 在irb 我试过了 gt gt mgpyone hash returns gt 144611910 这个方法是如何工作的 The hash方法是为所有对象定义的 看文档
  • 使用复选框过滤列表

    我有一个电影列表及其评级 在我的页面顶部 我有一个表单 其中提供了一个复选框列表 其中显示了每个可用的评级 G PG 13 等 一旦用户单击复选框并点击提交 我只想显示所选的电影 在我的索引方法中 我有一个名为的实例变量 filtered
  • 回形针不支持 .doc 文件

    在 Rails 4 0 2 中 我使用回形针 gem 上传文件 但它不支持 doc 文件 在文件上传字段下方 显示一条错误消息 扩展名与其内容不匹配 在模型中 检查内容类型的验证如下 validates attachment content
  • class_eval、class_exec、module_eval 和 module_exec 之间有什么区别?

    我正在读Module文档 但似乎无法理解它们的差异以及应该在哪里使用 怎么样eval不同于exec 我将回答比你的问题更多的内容 包括instance eval exec 在你的问题中 所有变体 instance module class
  • 在 Mac OS X 10.6.8 中手动编译 Ruby 时,GEM 在哪里?

    我在 Snow Leopard 上手动构建了 Ruby 1 9 2 现在我找不到我的旧 GEM 文件了 我猜他们现在正走在不同的道路上 所以我有三个问题 什么是 旧 宝石路径 在哪里gem install sinatra把西纳特拉宝石 当我
  • 如何使用 Ruby on Rails 3 检查 HTTP 请求的“Content-Length”字段?

    我正在使用 Ruby on Rails 3 在我的视图文件中我有以下代码 为了避免服务器过载 我会在服务器接收上传文件之前检查上传文件的大小 这是因为 按下表单的提交按钮 服务器会先完整接收文件 然后再检查文件 我知道一个HTTP 请求有标
  • Rspec to have(n).items undefined 方法

    我正在尝试遵循指南关于代码 tuts http code tutsplus com tutorials ruby for newbies testing with rspec net 21297我不断收到错误 这是我的库规范 require
  • 我必须使用什么加密程序来通过 HTTP 协议发送加密的“电子邮件”和“密码”值?

    我正在使用 Ruby on Rails 3 我想通过 HTTP 协议发送 电子邮件 和 密码 值 我知道 我不应该 但我需要 我需要从发送用户凭据我的客户申请到一个我的服务应用 我可以使用公共和私人RSA密钥来实现这一点 但如果是这样 我不

随机推荐

  • 符号链接检查 - 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