2011-05-31 58 views
1
$pip install selenium 
$sudo apt-get install firefox xvfb 


from selenium import webdriver 
from selenium.common.exceptions import NoSuchElementException 
from selenium.webdriver.common.keys import Keys 

browser = webdriver.Firefox() 
browser.get("http://www.yahoo.com") 

这就是我到目前为止对于硒。它似乎工作,除了它说,“Error: no display specified对于Selenium,我需要启动java服务器吗?

我的问题是:我需要运行硒罐?这似乎并不重要我是否运行或不...

回答

0

首先让我为您定义客户端模式和服务器模式:

  • 客户端模式:这种语言 绑定连接到远程 实例。这是 FirefoxDriver和RemoteWebDriver 客户端正常工作的方式。
  • 服务器模式: 其中语言绑定为 负责设置 服务器,该服务器运行于浏览器可连接的 。 ChromeDriver这样

工作在当前的树干所有的浏览器的 可以在客户端模式运行,尽管你必须指定ChromeDriver.exe路径。服务器模式可以用来做同样的事情。您可以将jar设置为运行以充当特定浏览器的服务器。然后您连接到该服务器。如果你这样做,你会看到一个Jetty服务器被设置并处理请求。如果这没有发生,那么你没有使用服务器模式。从我的代码中可以看到,您正在使用客户端模式,因此不需要运行该jar,除非需要额外的远程功能。

如果你想在远程机器上运行测试,在这种情况下你运行jar然后从你的本地机器连接到它,运行jar很有用。然后,jar将处理在运行它的机器上启动浏览器并将操作转发给它。

我相信在过去的Selenium RC API中,有必要始终运行jar,但是使用WebDriver并非如此。

+0

好的,谢谢。你知道我在当前的代码中如何使用Xvfb吗?在Selenium教程中,它说用DISPLAY ....启动jar,这样才有意义。我如何在当前代码中使用Xvfb? – TIMEX 2011-05-31 23:25:00

+0

对不起,我没有尝试硒与Xvfb。即将做到这一点。 – 2011-05-31 23:26:13

0

不,你不需要运行Selenium RC服务器。您也可以使用Webdriver方法,而不是使用功能测试的首选方法,这是对浏览器的“直接”控制,据我所知。

我认为服务器方法“Selenium RC server”对负载测试或多用户测试更有用,特别是在与Selenium Grid一起使用的情况下。

相关问题