Python 中的硒

2024-03-06

我一直在使用 urllib2 访问网页,但它不支持 javascript,所以我看了一下 Selenium,但即使读了它的文档我也很困惑。

我下载了适用于 Firefox 的 Selenium IDE 插件,并尝试了一些简单的操作。

from selenium import selenium
import unittest, time, re

class test(unittest.TestCase):
    def setUp(self):
        self.verificationErrors = []
        self.selenium = selenium("localhost", 4444, "*chrome", "http://www.wikipedia.org/")
        self.selenium.start()

    def test_test(self):
        sel = self.selenium
        sel.open("/")
        sel.type("searchInput", "pacific ocean")
        sel.click("go")
        sel.wait_for_page_to_load("30000")

    def tearDown(self):
        self.selenium.stop()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()

我只是访问 wikipedia.org 并在搜索字段中输入太平洋,但是当我尝试编译它时,它给了我很多错误。


如果运行脚本的结果是[Errno 111] Connection refused错误如下:

% test.py
E
======================================================================
ERROR: test_test (__main__.test)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/unutbu/pybin/test.py", line 11, in setUp
    self.selenium.start()
  File "/data1/unutbu/pybin/selenium.py", line 189, in start
    result = self.get_string("getNewBrowserSession", [self.browserStartCommand, self.browserURL, self.extensionJs])
  File "/data1/unutbu/pybin/selenium.py", line 219, in get_string
    result = self.do_command(verb, args)
  File "/data1/unutbu/pybin/selenium.py", line 207, in do_command
    conn.request("POST", "/selenium-server/driver/", body, headers)
  File "/usr/lib/python2.6/httplib.py", line 898, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.6/httplib.py", line 935, in _send_request
    self.endheaders()
  File "/usr/lib/python2.6/httplib.py", line 892, in endheaders
    self._send_output()
  File "/usr/lib/python2.6/httplib.py", line 764, in _send_output
    self.send(msg)
  File "/usr/lib/python2.6/httplib.py", line 723, in send
    self.connect()
  File "/usr/lib/python2.6/httplib.py", line 704, in connect
    self.timeout)
  File "/usr/lib/python2.6/socket.py", line 514, in create_connection
    raise error, msg
error: [Errno 111] Connection refused

----------------------------------------------------------------------
Ran 1 test in 0.063s

FAILED (errors=1)

那么解决方案很可能是您需要首先运行 selenium 服务器。

在下载中硒RC http://seleniumhq.org/download你会发现一个名为 selenium-server.jar 的文件(几个月前,该文件位于SeleniumRC/selenium-server-1.0.3/selenium-server.jar).

在 Linux 上,您可以使用以下命令在后台运行 selenium 服务器

java -jar /path/to/selenium-server.jar 2>/dev/null 1>&2 &

您将找到有关如何设置服务器的更完整说明here http://seleniumhq.org/docs/05_selenium_rc.html#installation.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的硒 的相关文章

随机推荐

  • 指定 cartopy 中的纬度/经度标签位置(删除某些边)

    Cartopy 0 18 0 中为任何地图投影添加纬度 经度标签的新功能非常出色 这是这个包的一个很好的补充 对于某些地图 特别是在极地地区 纬度 经度标签可能非常拥挤 这是一个例子 from matplotlib import pyplo
  • 扩展网址如何工作

    我知道这些类型的 URL 如何加载页面 基于它们的 GET 参数 在后端大致是这样的 但这些类型的 URL 是如何工作的呢 我的意思是 数据是如何动态加载的 www dummysite com parm subpage1 xyz www d
  • 处理连续的 JSON 流

    现已不复存在 页面http stream twitter com 1 statuses sample json http stream twitter com 1 statuses sample json用于返回连续且无限的 JSON 数据
  • 第一次执行代码时颜色不正确

    我有一段代码可以在一页上绘制多个堆叠条形图 我指定了一个调色板 以便每个数据组都与每个图表中的相同颜色相关联 我发现第一个图表中的颜色不正确 但在所有后续图表中都是正确的 如果我在同一个 R 会话中重新运行代码 所有图表都具有正确的颜色 但
  • 如何在 Mac 上设置 2.7 的 python 路径?

    我知道 这个问题已经被问过很多次了 也被回答过很多次了 但是 我仍然无法摆脱这个 我在我的 mac 上发现了以下信息 cd Library Frameworks Python framework Versions Current gt 2
  • 如何管理pouchdb和couchdb同步?

    存储多个用户数据的最佳方法是每个用户每个数据库 我正在使用同样的方法 我在服务器上有 couchdb 在移动应用程序上有 pouchdb 我通过在 pouchdb 和 couchdb 中为用户创建单独的数据库来维护每个用户数据 这意味着我在
  • 将 ssh 密钥与 scp 和 ssh 结合使用

    我正在尝试使用 scp 将一些文件复制到目标系统 然后登录到系统并安装这些文件 我在这里使用 scp 和 ssh 命令以及 ssh 密钥进行无密码身份验证 ssh 密钥是在源系统上创建的 如下所示 这是创建 ssh 密钥的正确且安全的方法吗
  • 为什么我不能在java中的Frame上画任何东西?

    编码就在这里 我无法在框架内创建任何矩形或圆形 该项目的目标是创建转换 celcius 2 华氏度和华氏度 2 摄氏度 所以我想要的是 请教我如何在框架旁边绘制矩形或椭圆形 import java awt BorderLayout impo
  • JESS 引擎的网页不可用

    http www jessrules com http www jessrules com and https herzberg ca sandia gov https herzberg ca sandia gov 不要再工作了 我如何获得
  • graphql-codegen 未使用配置文件运行

    In my package json文件我有运行的脚本条目graphql codegen但它抱怨说 config参数无效 gt yarn gen yarn run v1 21 1 graphql codegen config codegen
  • 气流动态 dag 创建

    有人请告诉我气流中的 DAG 是否只是一个图表 如占位符 没有任何与其关联的实际数据 如参数 或者 DAG 是否像一个实例 对于固定参数 我想要一个系统 其中要执行的操作集 给定一组参数 是固定的 但每次运行这组操作时 该输入都会不同 简单
  • Angular 2注入在继承中不起作用

    最近我们从 Angular 2 0 升级到 2 4 从那时起我们就遇到了继承问题 如果我们调用子进程 所有依赖项都会变得未定义 孩子没有构造函数 这意味着它使用父亲的构造函数 这是代码 Injectable export class Chi
  • 使用 ajax 下拉菜单中的 onclick 事件更新隐藏的输入值

    我正在使用 MachForm 并添加了这个隐藏字段
  • Spring Boot - 在 application.properties 中获取 Spring-Kafka 客户端 ID 的主机名

    我正在使用 Spring Kafka 和 Boot 开发一个项目 并且希望在 application properties 中获取属性 spring kafka consumer client Id 的主机名 以便可以在服务器端日志中区分我
  • 修改C中的char*字符串

    我有这个 char original html content 并想插入一个新的 char mycontent newhtmlinsert 进入之前的 原文 标签在 原始 中 我的新原版现在是 char neworiginal html c
  • 在 Visual Studio 中调试时访问异常中断过滤器的更好方法?

    我厌倦了在 Visual Studio 中使用令人眼花缭乱 耗时的 异常 对话框来打开和关闭异常中断过滤器 我寻找 Visual Studio 命令来帮助从命令窗口自动执行此操作 但没有成功 有没有人有一种技术可以避免 调试 gt 异常 对
  • 有效检查两个浮点值是否具有不同的符号

    我需要查找是否有两个有限浮点值A and B有不同的符号或其中之一为零 在许多代码示例中 我看到测试如下 if A lt 0 B gt 0 A gt 0 B lt 0 它工作正常 但对我来说看起来效率低下 因为这里验证了许多条件 并且每个条
  • SQL 查询返回几十年来的最大值

    这是使用 MYSQL我的问题如下 我有一个棒球数据库 在该棒球数据库中有一个主表 其中列出了曾经参加过比赛的每个球员 还有一个击球表 跟踪每个球员的击球统计数据 我创建了一个将这两者结合在一起的视图 因此masterplusbatting桌
  • 如何在 Django 模型中存储任意名称/值键对?

    我有一个包含很多数据字段的固定数据模型 class Widget Models model widget owner models ForeignKey auth User val1 models CharField val2 models
  • Python 中的硒

    我一直在使用 urllib2 访问网页 但它不支持 javascript 所以我看了一下 Selenium 但即使读了它的文档我也很困惑 我下载了适用于 Firefox 的 Selenium IDE 插件 并尝试了一些简单的操作 from