我在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字段,它就可以了。如果我包含任何字段,则不起作用。 我尝试用多种编码格式化它们:
奇怪的是,如果我使用Firefox而不是远程(HTMLUNIT),它可以工作。
我尝试搜索什么是AsyncHttpObject,但没有成功。
答案 0 :(得分:2)
网址不能包含任何字符。这就是为什么在任何查询中使用url之前需要对其进行“编码”的原因。
访问this page查看所有已编码的字符。请注意,编码后的URL中“:”将为“%3A”。
所以“test.com?date=10:10:10”应该是“test.com?date=10%3A10%3A10”。
像urllib模块中的urlencode()这样的python中的工具可以帮助你做得更好。对于那些,请检查urllib.urlencode文档。