如何在PageObject中使用css获取元素

2024-03-11

在我添加测试的项目中,我有一些难以“获取”的元素。
我的文本区域的 html :

<div class="quote">        
 <div class="clearfix">          
  <div class="icon"></div>            
   <div class="text">
    <span class="yui3-widget yui3-inputwidget yui3-textareawidget yui3-textareawidget-focused" style="">
     <span class="yui3-textareawidget-content">
      <textarea name="" placeholder=""></textarea>
     </span>
    </span>
   </div>        
   <div class="author">
    (...) other text_field 
   </div>
  </div>        
 </div>    
</div>

目前,我使用这一行来设置值

@browser.element(:css => ".quote textarea").send_keys "test"

在 PageObject 中,我应该声明该元素并使用它:

# declaration at the top
element(:quote_text, :css => ".quote textarea") 
# use it where I need
self.quote_text = "text"

但当我使用时出现此错误:

undefined method `quote_text=' for #<PublishPage:0x33843c0> (NoMethodError)

我哪里错了?


当你这样做时element(:quote_text, :css => ".quote textarea"),它只会生成方法(参见doc http://rubydoc.info/github/cheezy/page-object/master/PageObject/Accessors#element-instance_method):

quote_text #Returns the text of the element
quote_text_element #Returns the element
quote_text? #Returns if the element exists

由于您知道它是一个文本区域并且需要文本区域方法,因此您应该将其声明为:

text_area(:quote_text, :css => ".quote textarea") 

这将为您提供quote_text=您期望的方法(参见doc http://rubydoc.info/github/cheezy/page-object/master/PageObject/Accessors#text_area-instance_method).

Update- 由于 Watir-Webdriver 仅支持元素类的 css 选择器(请参阅第124期 https://github.com/watir/watir-webdriver/issues/124),您还需要更改定位器。两个替代声明quote_text这似乎有效:

#Using a block to locate the element:
text_area(:quote_text){ div_element(:class => "quote").text_area_element }

#Using xpath:
text_area(:quote_text, :xpath => '//div[@class="quote"]//textarea') 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在PageObject中使用css获取元素 的相关文章

  • 如何使用 Watir Webdriver 获取父元素的索引?

    我有这个 HTML 代码 div class A div class B Text1 div div div class A div class B Text2 div div 所以我需要找到 div class A 的索引 在其中找到一些
  • Selenium WebDriver 将 Firefox 路径更改为 Tor

    我正在尝试更改 ruby 中的网络驱动程序以打开 Tor 浏览器而不是默认的 Firefox 浏览器 我正在使用以下代码 并且在运行此代码之前打开了 Tor 浏览器 path C Users Bonnnie Downloads Tor Br
  • 我们怎样才能让 Watir-Webdriver 处理 IE 无效证书屏幕?

    我们在测试时可能都见过这个屏幕 您所需要的只是一个带有自签名证书的 HTTPS 站点 然后您会看到 此网站的安全证书有问题 屏幕 这需要您单击链接才能继续 对于 Watir 这不是问题 我可以像处理任何其他网页一样自动化屏幕 根据其文本或
  • 如何使用 watir-webdriver 禁用 Firefox 中的下载窗口?

    我不想处理 Firefox 或 IE 中的下载窗口 我想自动下载excel文件 没有任何下载窗口 我尝试为 Firefox 设置几个配置参数 但没有成功 在我的测试中 我尝试下载 Excel 文件 profile Selenium WebD
  • 如何使用 Watir 访问 Shadow DOM 并与之交互?

    我需要访问此页面 chrome downloads 并检查文件是否已下载 但它是 Shadow DOM 我发现这篇文章如何使用 Selenium Webdriver 访问 DOM 元素 http jeremysklarsky github
  • 使用 Watir 将多个文件传递到输入节点(使用 Ruby)

    所以我遇到了一些障碍 我正在尝试自动化一个测试用例 其中我需要将多个文件传递到输入节点 但我不知道如何执行此操作 我可以使用 Mechanize 或 Watir 但在自动化领域似乎相对重要的主题上发现的信息很少 在下面的代码片段中 我将 W
  • 如何根据行中的文本单击表格中的链接

    使用 page object 和 watir webdriver 如何根据行文本单击表中的链接 如下所示 该表包含 3 行 第一列中有名称 右侧列中有相应的详细信息链接 仪表板 详细信息 示例 详细信息 等等 div class basic
  • Ruby:无法在 Windows 上安装 Watir Gem

    瓦提尔的网站说我需要 Ruby 1 8 6 我正在运行它 Windows 安装应该像这样简单gem install watir 但是当我运行它时 我得到了这个 C Users Ryguy Code gt gem install watir
  • 如何在 Watir 中屏蔽图像?

    我在用Watir http watir github io 对于不需要加载任何图像的数据获取工作 有可能阻止他们吗 我认为可以是 profile Selenium WebDriver Chrome Profile new profile w
  • 如何在 alpine 中使用最新版本的 chromium 驱动程序

    我们使用 Alpine 作为运行 watir 测试的 docker 容器 我想使用较新的版本 例如 chromium75 0 3770 8 和 chromium chromedriver75 0 3770 8 但 Alpine 最新版本是
  • 通过属性获取元素

    我会很短 据我所知 watir 库提供了两种获取 html 元素的方法 几乎对于每个元素 div button table li 等 watir 都提供了两种方法 一种是 单一 方法 仅获取一个特定元素 例如 watir instance
  • Watir webdriver Errno::ECONNREFUSED: 无法建立连接,因为目标计算机主动拒绝连接。 - 连接(2)

    Updated 我正在运行下面的代码来执行示例测试用例 Windows 7 Watir 3 0 0 Watir webdriver 0 6 1 require watir webdriver require test unit class
  • 我们可以在 xpath 值中使用正则表达式吗?

    我们可以在 xpath 值中使用正则表达式吗 我正在使用 xpath 值来识别网络上的自动化元素 我有以下 xpath 值 xpath id ngdialog4 div 2 div 2 table tbody tr td 1 input 但
  • 如何避免页面对象中的复合类名称错误?

    当我尝试使用有空格的类名时class country name 在页面对象中 我得到 Compound class names not permitted Selenium WebDriver Error UnknownError 如何使用
  • 使用 Watir 控制新选项卡操作? (红宝石)

    我使用 watir 进行自动化测试 在运行一些表格后 会在新选项卡中打开一个图表 但 watir 似乎无法识别新的当前选项卡 并继续通过原始浏览器选项卡进行搜索 有什么方法可以告诉 watir 你想使用哪个选项卡吗 Watir 不关心新页面
  • 如何使用 watir-scroll 在表格内滚动

    我有一个应用程序 其中有一个动态表 仅当您向上或向下滚动时才会加载行 Watir scroll 正在滚动整个页面 我可以在该表中执行滚动吗 使元素可滚动通常是通过设置overflow风格 它很可能在一个div其中包含table 例如 div
  • 如何在PageObject中使用css获取元素

    在我添加测试的项目中 我有一些难以 获取 的元素 我的文本区域的 html div class quote div class clearfix div class icon div div class text span class yu
  • 关于 select_list 和重新加载的 Watir 问题

    我有一个包含多个选项的下拉菜单 每当您选择一个选项时 页面都会重新加载该选项的特定数据 目前我正在使用 select list name strg set value 它很好地完成了这部分工作 但它不会使用特定数据重新加载页面 任何人都知道
  • 在 watir 中自动下载文件

    如何一键点击链接自动从浏览器下载 Excel 文件 而无需通过 watir 中的 另存为 和其他窗口 我试图保持它独立于操作系统 所以对使用 win32ole gem 不感兴趣 为了这个任务 我调整了我的个人资料偏好 我的代码如下所示 镀铬
  • 元素不可点击错误 Ruby / Watir

    在我的测试中 我尝试访问 etsy com 进行搜索 单击结果 然后将商品添加到我的购物车 我可以做所有事情 直到我尝试单击 添加到购物车 按钮 下面的代码实际上在 IRB 中工作 所以我知道我的定位器是可靠的 但是当我运行测试时 我得到一

随机推荐