python - Selenium 无法打开(复杂)网址

标签 python selenium htmlunit

我在 Python 中使用 Selenium 与远程和 HTMLUNIT。在执行 driver.get(url) 时,出现以下错误:

Traceback (most recent call last):
[...]
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: u'ReferenceError: "AsyncHttpObject" is not defined.

我的网址采用以下格式:

http://www.test.com?date1=01-Mar-2013%2010:00:01&date2=07-Mar-2013%2010:00:01&xx=yy&etc=etc

如果我排除 date1 和 date2 字段,它就可以工作。如果我包含任何字段,它就不起作用。 我尝试用多种编码来格式化它们:

  • date1=01-Mar-2013%2010:00:01
  • date1=2013 年 3 月 1 日 2010:00:01
  • 日期1=2013年3月1日%2010%3A00%3A01
  • 日期1=2013年3月1日+2010%3A00%3A01

奇怪的是,如果我使用 Firefox 而不是远程 (HTMLUNIT),它就可以工作。

我尝试搜索什么是 AsyncHttpObject,但没有成功。

最佳答案

URL 不能包含任何字符。这就是为什么在任何查询中使用 url 之前需要对其进行“编码”的原因。

访问this page对于所有编码字符。请注意,“:”在编码 URL 中将是“%3A”。

因此“test.com?date=10:10:10”应该是“test.com?date=10%3A10%3A10”。

Python 中有一些工具,例如 urllib 模块中的 urlencode() ,可以帮助您做得更好。对于这些,请检查 urllib.urlencode 文档。

关于python - Selenium 无法打开(复杂)网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15275679/

相关文章:

python - 更改多个列名称

asp.net - 使用 RSelenium 通过 for 循环从 .asp 网页收集表数据

java - HtmlUnit - "Browser Not Supported"使用 JQuery 的网站上出现错误

java - 从 Selenium 中的跨度获取文本

ruby-on-rails - Cucumber/Capybara -- 如何获取当前执行的主机和端口

htmlunit - 给定一个 HtmlUnit HtmlPage 对象,如何获取其 Document 的 URI?

java - HtmlUnit 忽略 JavaScript 错误?

python - 如何将类别矩阵可视化为 RGB 图像?

python - 如何在 Django 中使用数据库关系?

Python/GAE 属性错误 - webapp2