实际和自动上下文菜单是不同的Selenium Webdriver

时间:2015-07-20 20:51:06

标签: ruby selenium selenium-webdriver

我已经广泛搜索了这个问题但似乎没有人有这个问题。另外,作为旁注,我是Selenium和Ruby的初学者,但我会尽量在问题上尽可能具有建设性。

我的任务是通过各种网络元素的上下文菜单收集网站信息。我正在练习的网站是http://pershinghall.com/,因为它使用了自动播放和闪存 - 这是我要测试的两件事。当我自然地查看页面并右键单击背景时,上下文菜单的元素如下:

enter image description here

但是,当我使用selenium自动化流程时,上下文菜单选项为:

enter image description here

有人会碰巧知道为什么会这样吗?我的代码如下。

require 'rubygems'
require 'selenium-webdriver' 

driver = Selenium::WebDriver.for :firefox
driver.get "http://pershinghall.com/"
sleep(5)

elem = driver.find_element(:id, "background")
driver.action.move_to(elem, 100, 100).click.context_click.perform

最后,后台html元素的开头是:

<div id="background">
<object style="visibility: visible;" id="flash_container" data="swf/index.swf" type="application/x-shockwave-flash" height="100%" width="100%"><param value="transparent" name="wmode"><param value="noscale" name="scale"><param value="lt" name="salign"><param value="true" name="allowfullscreen"></object>
</div>

非常感谢任何意见!

1 个答案:

答案 0 :(得分:1)

看起来你的测试是在屏幕的某些部分上进行上下文点击,而不是你想要的Flash元素 - 第二个屏幕截图是Firefox的上下文菜单。

我现在无法自己尝试,但我会尝试不同的参数:

driver.action.move_to(elem, 100, 100).click.context_click.perform

为什么你已经确定了100,100?您是否可能超出或低于闪光灯元件?