【问题标题】:Understanding how selenium works了解硒的工作原理
【发布时间】:2018-02-17 18:58:00
【问题描述】:

所以我在 python 中有一个脚本,使用 selenium 和 chrome 驱动程序。我想知道当我打电话时是否像

driver.executescript('return document.readyState')
# OR
driver.find_element_by_xpath('blah')

这是否向网站发出请求?他们能告诉我正在搜索 html 或执行任何脚本吗?或者一旦加载并且是本地的,这一切都在文档上。

我不断收到“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”的错误消息,这对我来说意味着我正在快速使用所有套接字。

【问题讨论】:

  • 我不是专家,selenium 文档中没有足够的信息,但您可以测试使用 Fiddler 发出的请求。有些函数会发送一个网络请求,有些函数会使用已经下载的 DOM
  • 我不认为它会提出任何请求,因为该网站可能已经禁止我,因为它们因此而臭名昭著。我想我收到了错误,因为我在通过 selenium 运行 chrome Web 驱动程序时打开了 chrome 浏览器。他们都试图绑定到同一个 ip。
  • 我从来没有遇到过这个问题,并且同时使用浏览器和驱动程序。您检查过您的网络响应消息吗?这给你任何线索吗?你的错误信息来自哪里? Are there multiple threads making requests?
  • 你从哪里得到这个错误?您是否尝试跨线程重用驱动程序对象?

标签: python-3.x selenium webdriver selenium-chromedriver


【解决方案1】:

所以似乎在循环中有一个 driver.execute_script('stuff') 是导致套接字错误的原因。仍然不确定为什么。我添加了一些等待,使用 WebDriverWait 来检查脚本,现在没有问题了。

【讨论】:

    猜你喜欢
    • 2016-02-20
    • 2012-12-11
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多