1

我正在使用硒。我有以下代码:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.get("http://www.mysite.com")
x = browser.find_elements_by_xpath("//div[@id='containeriso3']/div/a[1]")
hrefs = [i.get_attribute('href') for i in x]

现在,这行得通。

但我想在运行 ubuntu 命令行的服务器上执行此操作。这意味着我不能使用它

browser = webdriver.Firefox()

在我的代码中。通过命令行可以使用什么替代方法?

4

3 回答 3

4

您可以使用基于 Rhino javascript 引擎的无头浏览器 HtmlUnitDriver。

http://code.google.com/p/selenium/wiki/HtmlUnitDriver

于 2013-02-06T12:03:53.963 回答
1

如果您的 Ubuntu 服务器和桌面位于同一网络上,请使用 Selenium Grid。您的代码将在 Linux 服务器上启动,您的测试将在您的桌面上执行。

看看下面的链接:

http://code.google.com/p/selenium/wiki/Grid2

这些示例是用 Java 编写的,但我相信您可以将它们改编为 Python,或者至少了解您需要做什么。

于 2013-02-06T15:22:15.680 回答
0

我认为您也可以尝试使用基于 phantomjs 的 ghost 驱动程序:

https://github.com/detro/ghostdriver,或者您也可以尝试在 Xvfb 上运行常用的 firefox 驱动程序。

这取决于你需要什么。

于 2013-02-13T09:26:22.313 回答