对于Selenium,是否需要启动java服务器?

对于Selenium,是否需要启动java服务器?,java,python,selenium,jar,Java,Python,Selenium,Jar,这就是我到目前为止所拥有的硒元素。它似乎工作正常,只是说,“错误:未指定显示”” 我的问题是:我需要运行selenium jar吗?我是否运行它似乎无关紧要…首先让我为您定义客户端模式和服务器模式: 客户端模式:语言 绑定连接到远程服务器 例子这就是 FirefoxDriver和RemoteWebDriver 客户正常工作 服务器模式: 语言绑定在哪里 负责建立 运行驱动程序的服务器 浏览器可以连接到。这个 ChromeDriver就是这样工作的 在当前主干中,所有浏览器都可以在客户端模式下

这就是我到目前为止所拥有的硒元素。它似乎工作正常,只是说,“
错误:未指定显示”


我的问题是:我需要运行selenium jar吗?我是否运行它似乎无关紧要…

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

  • 客户端模式:语言 绑定连接到远程服务器 例子这就是 FirefoxDriver和RemoteWebDriver 客户正常工作
  • 服务器模式: 语言绑定在哪里 负责建立 运行驱动程序的服务器 浏览器可以连接到。这个 ChromeDriver就是这样工作的
在当前主干中,所有浏览器都可以在客户端模式下运行,尽管您必须指定ChromeDriver.exe路径。服务器模式也可以用来做同样的事情。您可以将jar设置为作为特定浏览器的服务器运行。然后连接到该服务器。如果您这样做,您将看到正在设置Jetty服务器,并且它正在处理请求。如果没有发生这种情况,则您没有使用服务器模式。正如我从您的代码中看到的,您当前使用的是客户机模式,因此不需要运行jar,除非您需要它的额外远程功能

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


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

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


我认为服务器方法“Selenium RC server”对于负载测试或多用户测试更有用,尤其是在与Selenium Grid一起使用时。

好的,谢谢。您知道如何在当前代码中使用Xvfb吗?在Selenium教程中,它说用显示启动jar…所以这是有意义的。如何在当前代码中使用Xvfb?很抱歉,我没有尝试使用Selenium和Xvfb。我很快就会这么做的。
$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")