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

2024-06-02 05:01:20 发布

您现在位置:Python中文网/ 问答频道 /正文

$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

我的问题是:我需要运行硒罐吗?不管我运行与否。。。在


Tags: installpipfromimportbrowsergetseleniumsudo
2条回答

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

  • 客户机模式:语言 绑定连接到远程 实例。这就是 FirefoxDriver和RemoteWebDriver 客户端正常工作。在
  • 服务器模式: 语言绑定在哪里 负责建立 服务器,驱动程序在其中运行 浏览器可以连接到。这个 ChromeDriver就是这样工作的

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

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

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

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

我认为服务器方法“Selenium RC server”对于负载测试或多用户测试更有用,尤其是在与Selenium网格一起使用它的上下文中。在

相关问题 更多 >