ruby - 需要帮助从 Watir-Webdriver API 查找特定方法

标签 ruby testing cucumber watir-webdriver

我正在使用 Watir-webdriver 和 Ruby 测试网络应用程序。我需要验证其中一个网页上表格的内容。 table 元素没有 id,所以我不能直接获取它。但是,它嵌套在一个 确实 包含 id 的 div 中。

Watir-webdriver 有一个方法 (.parent) 允许您获取您正在使用的元素的父元素,但是换一种方式呢?

是否有类似于 .child 或 .child_element 的东西可以让您通过父元素获取子元素?

我搜索了 Watir-webdriver 的 API,但没有找到任何有用的东西。我想知道这里是否有人知道我错过的方法?

谢谢。

最佳答案

所有元素定位方法都在调用它们的浏览器/元素范围内搜索。

例如假设您有页面:

<html>
  <body>
    <table><tr><td>table 1</td></tr></table>
    <div id="div_id">
      <table><tr><td>table 2</td></tr></table>
    </div>
  </body>
</html>

通常你调用浏览器的元素方法,它返回浏览器中的第一个匹配元素:

browser.table.text
#=> "table 1"

通过在元素(而不是浏览器)上调用元素方法,您是说要在另一个元素中定位该元素。例如:

browser.div(:id => 'div_id').table.text
#=> "table 2"

将返回 ID 为“div_id”(在浏览器中)的 div 中的第一个表。

关于ruby - 需要帮助从 Watir-Webdriver API 查找特定方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24511009/

相关文章:

testing - 使用多个标签在 Karate 选项中运行

cucumber - 为众多客户提供 Watir-Webdriver 现场覆盖的方法

ruby - 在 ruby​​ 中获取 Web 服务器证书

ruby 鞋子 : Minimize app to system tray on windows

ruby - mini_magick gem 不适用于我的 ImageMagick 安装

java - 如何获取CucumberOptions当前执行的标签?

cucumber :如何为多个场景只执行一次后台

ruby - 在 Maven 集成中运行 Ruby 单元测试

testing - cypress:使用 npm run cy:open 从命令行传递环境变量

c# - 在 C# selenium 测试运行时打开 Google Chrome 开发者工具控制台,或者以编程方式读取它