我已经广泛搜索了这个问题但似乎没有人有这个问题。另外,作为旁注,我是Selenium和Ruby的初学者,但我会尽量在问题上尽可能具有建设性。
我的任务是通过各种网络元素的上下文菜单收集网站信息。我正在练习的网站是http://pershinghall.com/,因为它使用了自动播放和闪存 - 这是我要测试的两件事。当我自然地查看页面并右键单击背景时,上下文菜单的元素如下:
但是,当我使用selenium自动化流程时,上下文菜单选项为:
有人会碰巧知道为什么会这样吗?我的代码如下。
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>
非常感谢任何意见!
答案 0 :(得分:1)
看起来你的测试是在屏幕的某些部分上进行上下文点击,而不是你想要的Flash元素 - 第二个屏幕截图是Firefox的上下文菜单。
我现在无法自己尝试,但我会尝试不同的参数:
driver.action.move_to(elem, 100, 100).click.context_click.perform
为什么你已经确定了100,100?您是否可能超出或低于闪光灯元件?