我正在尝试自动化一个网站的测试脚本
我有以下错误
import urllib , urllib2 , cookielib , random ,datetime,time,sys
cookiejar = cookielib.CookieJar()
urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
urllib2.install_opener(urlOpener)
username=username.strip()
values = {'username': username, 'password': 'password'} #user input
data = urllib.urlencode(values)
request = urllib2.Request('http://141.168.25.182/',data)
url = urlOpener.open(request)
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/urllib2.py", line 364, in open
response = meth(req, response)
File "/usr/lib/python2.4/urllib2.py", line 471, in http_response
response = self.parent.error(
File "/usr/lib/python2.4/urllib2.py", line 402, in error
return self._call_chain(*args)
File "/usr/lib/python2.4/urllib2.py", line 337, in _call_chain
result = func(*args)
File "/usr/lib/python2.4/urllib2.py", line 480, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden发布于 2010-11-03 17:26:03
一些可能对你有帮助的建议
urlencode函数与您所认为的不同
>>> from urllib import urlencode
>>> values = {'username': 'username', 'password': 'password'}
>>> data = urlencode(values)
>>> data
'username=username&password=password'
>>> 请求方法参数再次不正确
执行此操作时,数据即为请求有效负载
request = urllib2.Request('http://141.168.25.182/',data)您想要做的是验证您自己。
这将取决于身份验证服务器期望的类型。以下内容用于使用urllib2进行基本身份验证。有关更多详细信息,请阅读模块文档。
import urllib2
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(user='..', passwd='...')
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
urllib2.urlopen('url)发布于 2010-11-03 18:40:45
我建议使用机械化。这样就不会有太多麻烦了。您的代码将如下所示
import mechanize
base_url = "http://someurl"
login_url = base_url + "/login"
protected_url = base_url + "/potected"
b = mechanize.Browser()
b.visit(login_url)
b.add_password(base_url, "user", "secret", "some Realm")
b.open(login_url)
b.open(protected_url)您还可以使用mechanize的表单提交和.click方法。
发布于 2016-07-15 20:38:03
如果你想自动化web应用程序的测试,你应该使用selenium并做一些类似这样的事情。
from selenium import webdriver
# Create an instance of a browser
browser = webdriver.Firefox()
# Open homepage
browser.get("http://141.168.25.182")
# Find username and password fields (i do not know what ids your input fields actually have)
username_input = browser.find_element_by_id("username")
password_input = browser.find_element_by_id("password")
# Fill in username and password fields
username_input.send_keys("test_username")
password_input.send_keys("test_password")
# Find and click on the login button
browser.find_element_by_id("login").click()
# Check that you are signed in by finding a sign out button
browser.find_element_by_id("signout")https://stackoverflow.com/questions/4085530
复制相似问题