我们正在使用JBehave Web为新项目推动我们的selenium测试套件,并且非常喜欢JBehave上提供的Etsy.com示例,特别是Java / Spring maven原型,因为它适合我们的架构。
到目前为止,最大的问题是文档,这就是我在这里发帖的原因,希望能在类似情况下得到其他人的帮助。
看起来JBehave Web只提供了一个“FirefoxWebDriverProvider”类,而且没有相应的类。有没有其他人遇到这个问题?您是否编写过自己的ChromeDriverProvider?
此外,我们需要更改默认情况下出现的浏览器的大小,而且我似乎无法在测试运行的引导过程中找到一种方法。
我们正在使用Maven原型:jbehave-web-selenium-java-spring-archetype,它使用jbehave-maven-plugin和“run-stories-with-annotated-embedder”目标,所以我们正在使用扩展InjectableEmbedder的“Annotated”方法。
如果有人可以提供一些指导,我会非常感激,即使只是指示更多的例子。
答案 0 :(得分:11)
webDriverProvider.get().manage().window().setSize(new Dimension(width, height));
您可以通过浏览代码轻松找到这样的代码。如果您使用的是Eclipse,那么 Open Declaration 和 Quick Type Hierarchy 选项就是您需要的一切。
您可以使用TypeWebDriverProvider
或PropertyWebDriverProvider
。例如:
new TypeWebDriverProvider(ChromeDriver.class);
答案 1 :(得分:2)
jokka说的是正确的,justr旁注:在调整窗口大小之前,我总是将它放在左上角,所以我知道WebDriver可以“看到”所有内容:
driver.get().manage().window().setPosition(new Point(0, 0));
显然,上面的driver
被认为是WebDriverProvider的健康实例
答案 2 :(得分:2)
我们最终找到了这个Chrome Driver并且它一直很好用。它可以在引导时以最大化模式启动时获取参数,并且还会在启动时公开添加扩展的功能。
答案 3 :(得分:2)
这应该有效:
driver.manage().window().setSize(new Dimension(800, 621));
答案 4 :(得分:0)
driver.Manage().Window.Size = new Size(x, y);
这对我来说很好。 x和y位于要素文件中。
答案 5 :(得分:-1)
试试这个:
这对我来说很好。
Capybara.current_session.driver.browser.manage.window.resize_to(1800, 1000)