对于Selenium,我需要启动java服务器吗


$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">

我的问题是:我需要运行硒罐吗?我是否运行它似乎并不重要。。。

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

  • 客户端模式:其中的语言绑定连接到远程例子这是FirefoxDriver和RemoteWebDriver客户端正常工作
  • 服务器模式:语言绑定所在的位置负责设置服务器,驱动程序在其中运行浏览器可以连接到ChromeDriver就是这样工作的

在当前主干中,所有浏览器都可以在客户端模式下运行,尽管您必须指定ChromeDriver.exe路径。服务器模式也可以用来做同样的事情。您可以将jar设置为作为特定浏览器的服务器运行。然后连接到该服务器。如果你这样做,你会看到一个Jetty服务器正在设置中,它正在处理请求。如果没有发生这种情况,则说明您没有使用服务器模式。正如我从你的代码中看到的,你目前使用的是客户端模式,所以没有必要运行jar,除非你想要它的额外远程功能

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

我相信在过去使用Selenium RC API时,必须始终运行jar,但使用WebDriver时,情况并非如此。

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

我认为服务器方法"SeleniumRC-server"对于负载测试或多用户测试更有用,尤其是在将其与SeleniumGrid一起使用的情况下。

最新更新