使用watir-webdriver获取音频控件的src值

时间:2015-02-19 03:38:44

标签: ruby selenium-webdriver watir-webdriver

我正在使用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?

- 返回true。

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

-fails

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

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

3 个答案:

答案 0 :(得分:1)

正确的语法是:

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

如果页面上只有一个音频/来源,您只需执行以下操作:

browser.source.src

但是,如果有多个音频/来源,您需要找到更具体的方式来定位它们。例如,如果音频元素周围有唯一的父div元素,则可以执行以下操作:

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

答案 1 :(得分:1)

你应该能够做到

$browser.source.attribute_value("src")

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

答案 2 :(得分:0)

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

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

请参阅api doc here并查看与[{3}}相关的其他SO帖子