如何使用 css 模块调整网站上的水豚查找器?

2024-03-02

在我们的自动化测试中,代码中的典型行可能类似于:

find('.edit-icon').click

我们正在我们的项目中使用 css-modules,我被警告说类名可能会发生巨大的变化。一个非常滑稽的例子是这个网站在其类名称中使用表情符号(当您检查页面时):

css 模块由 Glenn Maddern 设计 http://glenmaddern.com/articles/css-modules

我怎样才能最好地为如此巨大的变化做好准备?我想象我们的许多规范都被破坏了,但我有点担心在我们的项目中根本无法使用这项新技术编写测试。


使用自定义水豚选择器,您可以从正在完成的实际 CSS 查询中抽象出来,并将其移动到一个位置。在您的评论中,您提到需要更改为以传入值开头的类属性。

Capybara.add_selector(:class_starts_with) do
  css { |locator| "[class^=\"#{locator}\"]"
end

会这样做,然后可以称为

find(:class_starts_with, 'something')

或者如果你设置 Capybara.default_selector = :class_starts_with 那就只是

find('something')

除了更改 default_selector 之外,另一种选择是定义一个辅助方法,例如 find_by_class_start 或仅使用 :class_starts_with 调用 find 的方法(Capybara 的 #find_field 等如何工作)。

另请注意,上面的自定义选择器仅在仅设置一个类名的情况下才真正起作用,如果需要多个类名,您可以将选择器更改为"[class^=\"#{locator}\"], [class*=\" #{locator}\"]"

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

如何使用 css 模块调整网站上的水豚查找器? 的相关文章

  • grid-auto-columns 在 Firefox 中不能完全工作

    我不明白为什么 DIV 3 的大小与 DIV 1 DIV 2 的大小不同 https codepen io anon pen vaVqPW https codepen io anon pen vaVqPW grid display grid
  • 自动调整Google网站嵌入代码的高度(html)

    我正在使用 Google 协作平台嵌入 HTML 代码 将代码粘贴到 从网络嵌入 窗口中 输出的长度是可变的 我希望有一种方法可以动态调整父级的高度iframeGoogle 协作平台用于托管我的 HTML 我知道我可以使用 Google 协
  • Selenium 与 HtmlUnit? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我试图更好地理解测试框架并一直在研究 Selenium 我用过HTMLUnit http htmlun
  • 如何在 font Awesome 图标链接下方添加添加文本?

    我正在尝试在我的 Blogger 模板中的 font awesome Icons 下添加一些文本 这是我想要实现的目标的图像 我想要实现的外观图片 https i stack imgur com BVYlh png 但到目前为止我已经做到了
  • 如何仅在 css/html 中强制在单词之间换行?

    我只有一段普通的文本 p 标签内的 p div 标签 但只有 Firefox 可以正确显示 Firefox 打破了单词之间的界限 所有其他浏览器都会在单词中间断行 这使得阅读变得困难 这是我的意思的一个例子 火狐浏览器 工作中 This w
  • 如何从下面的html中提取数据?

    我想要从中提取数据的 Html 是 div class infoMessageInner p span class ng binding Fiber r best lld till adressen Tj nsterna kan du be
  • 当百分比填充定义元素高度时忽略 max-height

    The max height当内部填充大于最大高度值时 属性值似乎被忽略 例如 在元素上设置此类会导致最大高度被忽略 max height ignored height 0 or auto makes no difference max h
  • 使用@font-face时浏览器下载什么字体

    font face 有点令人困惑 因为所有浏览器都无法决定使用哪种文件格式 下面是我目前正在使用的向网站添加 1 个新字体的方法 您可以看到有 4 个单独的字体文件 我知道每个文件都是因为某些浏览器支持不同的格式 但浏览器是下载所有文件还是
  • 存根和 rspec 旧语法的问题

    我正在编写一些代码并使用 rspec 但收到警告 提示语法已过时 我不太清楚应该如何编写它 it should calculate the value correctly do mock cards Card new clubs 5 Car
  • 如何从 bootstrap-markdown.js 调用 .getContent 和 .parseContent

    我是使用 Bootstrap 插件的新手 刚刚通过代码学院 http www codecademy com en skills make an interactive website 我真的很想用这个很棒的引导 Markdown 插件 ht
  • 滚动时将菜单栏固定在顶部[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我见过一些网站 当用户向下滚动页面时 会在右侧或左侧弹出一个框 另外 注意到这个模板 http www mvpthemes com m
  • 使用rSpec 测试delayed_job 链的最佳方法是什么?

    目前 当我的代码中有一个延迟方法时 如下所示 CommentMailer delay deliver comments comment true 我在规范中写了这样的内容 dj mock DelayProxy CommentMailer s
  • * 到底有多慢?

    大家都表示 选择器非常慢 但它到底有多慢呢 我总是试图避免它 但有时它非常有用 例如 h1 margin top 1em 简单来说 通用选择器 速度只与页面上的元素一样慢 Since 从右到左匹配浏览器获取每个元素并将其与所有候选规则进行匹
  • Shoulda/RSpec 匹配器 - 条件验证

    在我的代码中 我使用 Shoulda 匹配器进行了以下验证 效果很好 it should validate presence of name 在我的模型中 我已将条件添加到验证中 validates presence of name if
  • 如何处理 Django 中的错误

    我想让我的 django 应用程序尽可能对用户友好 并且我想处理适当的错误并让它推出类似于 javascript 中的警报的错误消息 我想在没有上传文件时执行此操作 因此 当按下上传按钮并且尚未上传任何内容时 将会发出一条警报消息 我的看法
  • 如何在 Capybara 中 POST 到 URL?

    刚刚从 Cucumber Webrat 切换到 Cucumber Capybara 我想知道如何将内容 POST 到 Capybara 中的 URL 在 Cucumber Webrat 中我能够执行以下步骤 When I send to d
  • 为不同的字体系列指定不同的字体大小

    有没有办法为不同的字体系列指定不同的字体大小 我想要使 用的字体 出于产品品牌目的 是一种有点罕见的字体 FlashDLig 并非所有 PC 和浏览器都支持 我的一台带有 IE 9 的 Windows 7 PC 不显示它 现在 对于我使用
  • 如何使整个跨度落入新行?

    这个片段显示了我想要的 http jsfiddle net 945Df 3 http jsfiddle net 945Df 3 div class sup strong a href Rosario Santa Fe Argentina a
  • 如何删除标题中的粗体?

    我有一个标题 h1 THIS IS A HEADLINE h1 如何使短语 THIS IS 不加粗 其余部分不做任何更改 我在文本装饰中找不到任何相关标签 标题看起来很粗体 因为它大尺寸 如果您已应用粗体或想要更改行为 您可以执行以下操作
  • 将特定字形与网络字体一起使用

    使用网络字体 我想使用字体功能设置 CSS 中的选项以及跨度类HTML 中 以便使用字体集中的特定替代字形 我需要以正确的语法使用哪些值 GID Unicode 才能定位特定的目标glyph内glyph备择方案 这些功能使用 OpenTyp

随机推荐

  • 在 API 23 / Marshmallow 中的 onOptionsItemSelected() 内的 recreate() 上出现错误

    我正在尝试使我的应用程序在 APIoptions menu 如果他们慢慢地点击菜单选项 这样就有时间看到该选项被突出显示 一切都很好 但如果他们短暂地点击 应用程序就会崩溃 我知道这是一种非常奇怪的行为 我花了一些时间试图理解是什么引发了错
  • cx_Freeze 复制路径

    我正在使用 cx Freeze 为我的 PyQt 应用程序生成 Windows 二进制文件 但生成的二进制安装程序似乎仍然包含对我的计算机上的文件的引用 生成二进制文件的那个 所以我无法将生成的安装程序分发到其他机器 当该程序在另一台计算机
  • tvOS 模拟器是否支持使用 Apple 登录 (SIWA)?

    我已在项目目标中启用 SIWA 的权利 相同的步骤在 iOS 模拟器中运行良好 我在 tvOS 模拟器上尝试使用 Apple SIWA 登录时遇到以下问题 重现问题的步骤 在点击自定义按钮请求 SIWA 时 全屏显示 Apple id 密码
  • 从用户位置查找数组中最接近的经度和纬度 - iOS Swift

    在发布的问题中here https stackoverflow com questions 24783442 find closest longitude and latitude in array from user location a
  • 如何复制 - 粘贴由 QStandardItemModel 创建的 QTableView 中的多个项目到文本/excel 文件?

    如何将 QTableView 的多个项目 值复制并粘贴到文本 Excel 文件 My Code tab table view QtGui QWidget self Tab insertTab 0 tab table view self Fi
  • React hooks - useState() 不会使用新状态更新重新渲染 UI

    我正在尝试新的 React Hooks 但我有点卡住了 因为更新本地状态时 UI 没有更新 这是我的代码 import React useState useEffect from react import Post from Post im
  • runas 不允许复杂的参数?

    我有一个应用程序 我试图在 Windows 7 和 Windows XP 瘦客户端上运行提升 但我似乎无法正确获取 runas exe 命令行 我知道我需要其中的反斜杠转义字符 以便 runas 正确解释空格 当将 run 作为已用反斜杠转
  • 如何将原始数据传递给asp.net core中间件

    我需要将一些数据传递到 ASP NET CORE 中间件 例如如果这是一个字符串列表 您是否使用与传递服务相同的机制 例如将其作为参数添加到 Invoke 方法中并向 DI 注册 如果是这样 您如何进行原始类型的注册 例如字符串列表 它必须
  • 在 R 中轻松输入相关矩阵

    我现在正在运行一个 R 脚本 当前使用 3 个相关变量 我想添加第四个 并且想知道是否有一种简单的方法来输入矩阵数据 特别是对于相关矩阵 一些类似Matlab的技术在R中输入相关矩阵 3x3或4x4 而不需要线性我一直在使用矩阵重塑 在 M
  • 如何让 prettier 打破所有联合类型?

    我要这个 type SomeType Variant1 Variant2 始终格式化为 type SomeType Variant1 Variant2 不管是否溢出指定的列宽 如果您需要对格式进行一定程度的控制 那么您可能不是 Pretti
  • matplotlib 中的直方图,x 轴上的时间

    我是 matplotlib 1 3 1 2 的新手 我找不到合适的起点 我想用 matplotlib 在直方图中绘制点随时间的分布 基本上我想绘制日期出现的累积总和 date 2011 12 13 2011 12 13 2013 11 01
  • 在 Java 中创建哈希的标准方法

    问题是关于在 Java 中创建哈希的正确方法 假设我有一个积极的BigInteger我想从中创建哈希的值 让我们假设下面的实例messageDigest是一个有效的实例 SHA 256 public static final BigInte
  • Docker 中的 Cassandra 无法从外部连接

    大家好 我是 Docker 和 Cassandar 这个词的新手 我从计算机连接到 Docker 中的 Cassandra 时遇到问题 我运行容器 Cassandra 我看到暴露的 ips 和端口是 192 168 99 100 9042
  • Android 无法通过互联网从 PC 服务器接收 UDP 数据

    我目前正在探索用Java 进行UDP 数据包传输 以在Android 上创建多人游戏 我使用通常的 127 0 0 1 成功地在 Nexus 4 内交换数据包 并且还成功地在本地网络中的 PC 服务器和 Android 客户端之间交换数据包
  • 使用 Maven 创建 META-INF/services 文件

    有没有办法使用 Maven 在 META INF services 中创建自定义服务文件 使用 Ant 可以这样做 https ant apache org manual Tasks jar html https ant apache or
  • 在实时数据库上运行 mysqldump

    只是想知道在实时数据库上运行 mysqldump 有哪些风险 是否存在数据库损坏的可能性 mysqldump 似乎锁定了整个数据库 您的数据库表使用什么引擎 如果您使用事务表 您可以使用选项 单事务 转储 这将以一致的状态转储您的表 如果您
  • Python:Scrapy CSV 导出不正确?

    我只是想写入 csv 但是 我有两个单独的 for 语句 因此每个 for 语句的数据独立导出并破坏顺序 建议 def parse self response hxs HtmlXPathSelector response titles hx
  • 在 docker 容器中安装 imagemagick

    我正在尝试在 Ubuntu 14 04 服务器上使用 ImageMagick 在上传到 s3 之前调整图像大小 我正在 Wercker 创建的 docker 容器内运行所有内容 问题是我已经将它安装在服务器上 并将其安装在 docker 容
  • NoSuchBeanDefinitionException:未找到与 spring 测试和 Junit 相关的合格 bean 类型

    我正在使用 spring 测试和 Junit 编写测试用例 并在初始化 bean 时遇到错误 我发现了很多关于此的帖子 但对我来说没有任何作用 下面是我的代码 Pom xml
  • 如何使用 css 模块调整网站上的水豚查找器?

    在我们的自动化测试中 代码中的典型行可能类似于 find edit icon click 我们正在我们的项目中使用 css modules 我被警告说类名可能会发生巨大的变化 一个非常滑稽的例子是这个网站在其类名称中使用表情符号 当您检查页