使用Watir时,我可以将-f参数传递给iexplore.exe吗?

时间:2011-07-27 14:43:15

标签: ruby watir

我需要运行几个使用Watir gem的Ruby脚本实例,它们都需要能够在IE全屏模式下运行。

澄清:他们需要能够以允许 多个 IE实例在全屏模式下运行的模式打开IE,而不一定触发全屏。打开IE通常只允许单个实例打开全屏(不是最大化)。

我可以通过在iexplore.exe上指定'-f'参数来手动执行此操作。有没有办法在从Watir创建浏览器对象时实现这一点?

如果我不能将它作为某种运行时参数发生,我可以更改打开IE的基本Watir调用 - 如果我可以并且可以找到它。

require 'watir' 
browser = Watir::Browser.new <--- adding '-f' somehow here?

4 个答案:

答案 0 :(得分:2)

试试这个,它在IE 9上适用于我。

browser = Watir::Browser.new
browser.goto 'http://www.google.com'
browser.getIE.parent.FullScreen = true 

修改:我找到了registry setting,可以做你正在尝试的事情。

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
Fullscreen = "yes" (Default = "no")

答案 1 :(得分:1)

你试过吗

browser.maximize

它仅适用于IE,但它是一个已被记录一段时间的选项(参见watir cheat-sheet

当然,您可能需要考虑为什么浏览器需要全屏运行,或者如果将脚本移动到默认屏幕大小不同的系统会发生什么。您可能最好将浏览器设置为特定大小,这可以通过简单的javascript resizeTo 功能完成,您甚至可以将其转到“URL”

browser.goto('javascript:resizeTo(800,600)')

还有一个' moveTo '可以以相同的方式使用。所以你可以将窗口定位在一个已知点。

如果您需要特定地点和大小的浏览器,需要考虑的其他事项是创建一个带有正确javascript的页面,以便按照您想要的方式设置内容,然后将其设为默认主页,以便浏览器尽快运行打开。如果你的谷歌搜索“javascript最大化浏览器”或“javascript调整大小浏览器”,你可能会找到这样一个页面的示例代码。

= - = - = - = 编辑基于澄清'全屏'是想要的,而不仅仅是最大化

最后,您可以简单地模拟“F11”按键,因为这是大多数浏览器的全屏切换。如果您使用的是watir-webdriver,可以通过sendkeys方法

完成
browser.send_keys :f11 

然而,这是一个切换,并且在脚本中将取决于处于正确状态的事物开始。不同步的东西可能会在全屏幕上“关闭”。

因此,您也可以调查本地系统上特定页面的想法,该页面将生成新的全屏窗口,并将代码附加到新窗口。 (或者使用watir-webdriver中的切换窗口代码)虽然这种“在全屏模式下弹出一个新窗口”可能会在未来某些浏览器中被阻止或弃用(见下文)。 / p>

警告:能够从HTML中将浏览器置于全屏模式,这有点令人不悦,因为它被视为安全漏洞。这是因为在创建网络钓鱼站点时,有人可以制作特定的图像,使其看起来像网址条和其他控件,以及合法网站上的用户。这些网站目前是网络社区目前面临的较大问题之一(我的垃圾邮件过滤器的内容大约有20%是网络钓鱼并且迅速上升)因此,尽管过去可能有方法可以做到这一点,但越来越多的网站被“关闭”更新更安全的浏览器版本。这可能会使sendkeys选项成为您在跨浏览器工作方面的最佳选择。 (几乎所有我知道使用F11进行全屏切换)

答案 2 :(得分:1)

-k将IE置于超过 F11 的全屏信息亭模式。没有工具栏,菜单,图标等。您必须按 Alt + F4 才能关闭它,您可以 Alt + 选项卡到其他打开的任务。

答案 3 :(得分:0)

感觉很讨厌,但我发现我可以做类似的事情(但我喜欢更好的方式):

require 'watir'
IO.popen('C:\\Program Files\\Internet Explorer\\iexplore.exe -f "newwindow"')
browser = Watir::IE.attach(:title,/newwindow/)