【问题标题】:Get the src value of an audio control using watir-webdriver使用 watir-webdriver 获取音频控件的 src 值
【发布时间】:2015-03-30 05:39:58
【问题描述】:

我正在使用 watir-webdriver 和 rspec 为 Web 应用程序编写自动化测试。 我需要检查音频控件是否已正确加载。 对于图像,我使用以下语法成功检查了 src 属性:

$browser.image(:src => "/media/myimage.jpg").present?.should eql(true)

我希望使用类似的方法来检查音频控件。 网页结构如下(去掉了 HTML 大括号):

audio controls="controls" title=""
   source src="/media/R010201/R010201_audio_PhotoTime.ogg" type="audio/ogg "
audio

注意 source 元素是 audio 元素的子元素。使用交互式 Ruby (IRB),我正在尝试使用 watir-webdriver 查找 src 标签。 我尝试了以下方法:

$browser.audio.present?

- 返回真。

$browser.audio.(:tag_name => 'source').text

-失败

$browser.element(:tag_name => 'source').src.text

-失败 我应该使用什么语法来获取 src 属性中的值?

【问题讨论】:

  • 你要抓取哪个来源?
  • 已编辑问题以删除不相关/不必要的 HTML 元素。
  • 删除 html 括号实际上会增加 html 恕我直言的阅读难度

标签: ruby selenium-webdriver watir-webdriver


【解决方案1】:

正确的语法应该是:

browser.audio.source.src
#=> "/media/R010201/R010201_audio_PhotoTime.ogg"

如果页面上只有一个音频/源,您可以这样做:

browser.source.src

但是,如果有多个音频/源,您将需要找到更具体的方法来定位它们。例如,如果音频元素周围有一个唯一的父 div 元素,您会这样做:

browser.div(:id => 'unique_id').source.src

【讨论】:

    【解决方案2】:

    你应该可以的

    $browser.source.attribute_value("src")
    

    并获取"file:///media/R010201/R010201_audio_PhotoTime.ogg" 值。它在我模拟的页面中对我有用。

    【讨论】:

      【解决方案3】:

      您正在尝试使用tagname,在这种情况下为audio 我不是Watir 的人,但我想这值得一试。

      browser.element(:xpath => "//*[@type='audio/ogg ']").attribute_value('src')
      

      查看api 文档here 并查看与here 相关的另一个SO 线程

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 2018-04-01
        相关资源
        最近更新 更多