首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python测试脚本

python测试脚本
EN

Stack Overflow用户
提问于 2010-11-03 17:14:11
回答 3查看 662关注 0票数 0

我正在尝试自动化一个网站的测试脚本

我有以下错误

代码语言:javascript
复制
    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
EN

回答 3

Stack Overflow用户

发布于 2010-11-03 17:26:03

一些可能对你有帮助的建议

urlencode函数与您所认为的不同

代码语言:javascript
复制
>>> from urllib import urlencode
>>> values = {'username': 'username', 'password': 'password'}
>>> data = urlencode(values)
>>> data
'username=username&password=password'
>>> 

请求方法参数再次不正确

执行此操作时,数据即为请求有效负载

代码语言:javascript
复制
request = urllib2.Request('http://141.168.25.182/',data)

您想要做的是验证您自己。

这将取决于身份验证服务器期望的类型。以下内容用于使用urllib2进行基本身份验证。有关更多详细信息,请阅读模块文档。

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2010-11-03 18:40:45

我建议使用机械化。这样就不会有太多麻烦了。您的代码将如下所示

代码语言:javascript
复制
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方法。

票数 0
EN

Stack Overflow用户

发布于 2016-07-15 20:38:03

如果你想自动化web应用程序的测试,你应该使用selenium并做一些类似这样的事情。

代码语言:javascript
复制
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")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4085530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档