【问题标题】:For Selenium, do I need to start the java server?对于 Selenium,我需要启动 java 服务器吗?
【发布时间】:2011-05-31 23:07:52
【问题描述】:
$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") 

这就是我目前所拥有的 Selenium。它似乎工作,除了它说,“Error: no display specified

我的问题是:我需要运行 selenium jar 吗?跑不跑好像都无所谓了……

【问题讨论】:

    标签: java python selenium jar


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 好的,谢谢。你知道我如何在我当前的代码中使用 Xvfb 吗?在 Selenium 教程中,它说用 DISPLAY 启动 jar ......所以这是有道理的。如何在当前代码中使用 Xvfb?
    • 对不起,我还没有用 Xvfb 尝试过 Selenium。很快就会这样做。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-07-15
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      相关资源
      最近更新 更多