如何找到像 这样的自定义标签?

2023-11-21

我必须处理页面中的一些图形项目<g>标签。我可以通过插入 selenium webdriver 来执行类似的操作来找到它们:

browser.wd.find_elements( :tag_name => "g" )

watir webdriver 的等效项是什么?

另外,我如何将这些硒元素转换成 watir 元素?

我可以添加对<g>以某种方式标记到本地的 watir 吗?


解决方案 1 - Watir-Webdriver 等效项:

与您在 selenium-webdriver 中所做的等效操作是:

browser.elements( :tag_name => "g" )

因此,您可以执行以下操作来输出每个元素的文本:

browser.elements( :tag_name => "g" ).each do |x|
  puts g.text
end

解决方案 2 - 添加对 G 元素的支持:

需要 watir-webdriver 后,添加以下代码:

module Watir
    module Container
        def g(*args)
            G.new(self, extract_selector(args).merge(:tag_name => "g"))
        end

        def gs(*args)
            GCollection.new(self, extract_selector(args).merge(:tag_name => "g"))
        end         
    end

    class G < Element
    end

    class GCollection < ElementCollection
        def element_class
            G
        end
    end
end

然后您可以像对待任何其他元素一样对待“g”。例如:

puts browser.g(:index, 0).text
browser.gs.each{ |x| puts x.text }

G 和 GCollection 类将支持所有标准元素方法。如果有特定于该元素的内容,您可以向类添加其他方法。

更新 - 添加自定义方法的示例:

要获取光标样式,您可以向 G 类添加一个方法,如下所示:

class G < Element
    def cursor_style()
        assert_exists
        return @element.style("cursor")
    end
end

然后,这将允许您获取光标属性,如下所示:

puts browser.g(:index, 0).cursor_style
#=> move

任何与元素交互的自定义​​方法都需要以assert_exists 开头。然后,在该方法中,您可以使用 @element 变量来处理该元素。

请注意,由于 G 元素继承自 Element 类,因此您还可以使用内置样式方法:

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

如何找到像 这样的自定义标签? 的相关文章

随机推荐

  • 复制工作表而不复制代码

    我可以通过调用它来复制工作表 Copy method Sheets Example Copy After Worksheets Sheet3 但是 这也会复制与该工作表关联的任何宏或事件处理程序 如何在不复制任何 Visual Basic
  • 对于每个控制变量必须是变量或对象

    这里对 VBA 真的很陌生 我环顾四周并尝试拼凑一些代码来满足我的需求 我认为已经差不多了 但我遇到的错误可能很容易克服 但我不知道如何克服 该代码查看当前工作表 STOCK 并从单元格 A2 中获取 目标 文本值 然后 它在另一个工作表
  • 如何创建每页显示 1 条记录的报告 (rdlc)

    让它工作时遇到一些麻烦 我基本上希望报告看起来类似于 我记得过去这样做的方法是在报表向导中创建 页面组 不过 我相信这是在 VS05 中 现在 VS10 中的报表向导有很大不同 它现在有列组和行组 但没有页面组 而且我也无法看到如何在没有向
  • Java内存不足异常

    我正在 Tomcat 中运行 Java Web 应用程序 该应用程序使用 Quartz 框架定期安排 cron 作业 这个 cron 作业涉及解析一个 4 MB 的 xml 文件 我正在使用 JDOM API 执行此操作 该 xml 文件包
  • 将 R 中直方图中的值集中在条形上

    希望将 x 轴的值绘制在 R 中条形的中心 在寻找实现这一点的方法时遇到问题 代码如下 hist sample avg breaks 7 ylim c 0 2000 main Histogram of Sample Average for
  • Cloud Run 请求限制

    目前 Cloud Run 的请求限制为32 Mb每个请求 这使得无法上传视频等文件 未对 GCP 存储进行任何更改 与此同时所有配额页面并未将此限制列为您可以向支持请求增加的限制 所以问题是 有谁知道如何增加此限制或如何使其成为可能 上传视
  • 具有固定标题和固定列的 HTML 表格?

    是否有 CSS JavaScript 技术来显示长 HTML 表格 使列标题在屏幕上保持固定 第一列保持固定并随数据滚动 我希望能够滚动浏览表格的内容 但始终能够看到顶部的列标题和左侧的第一列 如果有一个 jQuery 插件那就太好了 如果
  • 在pytorch中重置神经网络的参数

    我有一个具有以下结构的神经网络 class myNetwork nn Module def init self super myNetwork self init self bigru nn GRU input size 2 hidden
  • 在 Windows 资源管理器上下文菜单中添加分隔符(而不是在子菜单中)

    我发现 CommandFlags dword 00000040 将在条目下方添加分隔符 但仅添加到子菜单 在 subcommands 字符串下 例子here 有没有办法在主上下文菜单中添加分隔符 我正在使用的示例 HKEY CLASSES
  • git 过滤分支和 git 子树之间的区别?

    正在寻找 throw SO 来寻找答案 遇到了这个旧线程 它似乎没有给出任何答案 重新触发此线程希望有人知道 有人能告诉我 git subtree 和 git filter branch 之间的区别吗 我将在原始问题中使用相同的示例 git
  • Delphi:ListView(vsReport)单列标题标题具有自定义字体颜色?

    In a ListView with vsReport ViewStyle how can I customize the font color of just any single column header caption For ex
  • 线程是否在等待锁 FIFO?

    假设我有以下代码 static class static object myobj new object static void mymethod lock myobj my code 然后假设当线程 1 拥有锁时 线程 2 尝试运行 my
  • 抑制解决方案级别的警告。将警告视为解决方案级别的错误

    我正在努力为我的团队制定全球规则 我们在 C 项目中使用 VS2012 和 TFS 我想抑制一些警告并将一些警告视为错误 我找到了在项目级别执行此操作的方法 项目属性 gt 构建选项卡 但我们有超过一百个项目的解决方案 我正在寻找一些更简单
  • 添加行或使用 print.xtables 加粗单个 row.names – 在行之间添加一些内容?

    我尝试使用print xtable add to row得到这样的表格格式 sports share of ballers 22 3 share of skiers 4 6 瘾 share of smokers 20 3 share of
  • React Native 卡在 Starting Packager 上

    我是本地反应新手 我正在尝试构建一个应用程序来看看它是如何工作的 我按照此处给出的步骤进行操作 React Native 入门 直到 npm start 一切似乎都很好 在我输入 npm start 后 它说 12 08 53 PM 启动打
  • 更新 WebStorm 2016 中当前的缩进空间大小

    我需要在自动创建的 Ionic 项目中从 2 个空格的缩进样式切换为 4 个空格的缩进样式 我在 Mac OS X 上运行 WebStorm 2016 1 我已经尝试改变 网络风暴 偏好 代码风格 JavaScript 制表符和缩进 并调整
  • 卡桑德拉读取超时

    我正在从 cassandra 2 0 中提取大量数据 但不幸的是遇到超时异常 我的桌子 CREATE KEYSPACE StatisticsKeyspace WITH REPLICATION class SimpleStrategy rep
  • JavaFX 在没有控制器的 fxml 中包含 fxml

    我正在使用 javafx 编写一个应用程序 这是一个 多屏 应用程序 带有一个主菜单 我可以在其中切换场景 我的场景在不同的 fxml 文件中定义 因为我尝试使用 mvc 模式 所以我没有在 fxml 文件中设置控制器 而是在 FXMLlo
  • 在 C 语言中说“#define FOO FOO”有什么意义?

    我遇到了一些C作者在代码中到处使用以下惯用法 typedef int32 FOO INT32 define FOO INT32 FOO INT32 这样做有什么意义呢 typedef 还不够吗 对于一些不稳定的人来说这是一个解决方法C编译器
  • 如何找到像 这样的自定义标签?

    我必须处理页面中的一些图形项目