goodreads网站有这个API用于访问用户的"货架":https://www.goodreads.com/review/list/20990068.xml? key = nGvCqaQ6tn9w4HNpW8kquw &v = 2 &shelf = toored
它返回XML.我正在尝试创建一个django项目,该项目通过此API显示书架上的书籍.我正在寻找如何(或者是否有更好的方法)来编写我的视图,以便将对象传递给我的模板.目前,这就是我正在做的事情:
import urllib2
def homepage(request):
file = urllib2.urlopen('https://www.goodreads.com/review/list/20990068.xml?key=nGvCqaQ6tn9w4HNpW8kquw&v=2&shelf=toread')
data = file.read()
file.close()
dom = parseString(data)
Run Code Online (Sandbox Code Playgroud)
如果我正确地这样做,我不完全确定如何操纵这个对象.我正在学习本教程.
我希望能够输入服务器响应代码并让请求告诉我代码的含义.例如,代码200 - >确定
我找到了源代码的链接,它显示了代码和描述的字典结构.我看到Requests将返回给定描述的响应代码:
print requests.codes.processing # returns 102
print requests.codes.ok # returns 200
print requests.codes.not_found # returns 404
Run Code Online (Sandbox Code Playgroud)
但不是相反:
print requests.codes[200] # returns None
print requests.codes.viewkeys() # returns dict_keys([])
print requests.codes.keys() # returns []
Run Code Online (Sandbox Code Playgroud)
我认为这将是一项例行任务,但似乎无法在在线搜索或文档中找到答案.
检查量角器文档,我看到有一个选项可以运行量角器而不使用Selenium服务器使用directConnect: true
标志.
使用selenium服务器和没有selenium服务器运行量角器测试之间的区别是什么,除了后者只支持Chrome,Firefox这一事实?
我想获取当前未选择的选项的选择字段的命名值.这可能吗?
例如:models.py
FILE_STATUS_CHOICES = (
('P', 'Pending'),
('A', 'Approved'),
('R', 'Rejected'),
)
class File(models.Model):
status = models.CharField(max_length=1, default='P', choices=FILE_STATUS_CHOICES)
Run Code Online (Sandbox Code Playgroud)
views.py
f = File()
f.status = 'P'
f.save()
old_value = f.status
print f.get_status_display()
> Pending
f.status = 'A'
f.save()
new_value = f.status
print f.get_status_display()
> Approved
Run Code Online (Sandbox Code Playgroud)
如何将旧显示值从"P"变为"待定"?我可以通过在视图中创建表单并访问其值/标签字典来实现.这是最好/唯一的方法吗?
我通过运行以下命令开始我的量角器测试:
protractor protractor.conf.js --params.baseUrl=http://www.google.com --suite all
Run Code Online (Sandbox Code Playgroud)
我想运行一个'before launch'函数,它依赖于一个参数(在本例中是baseUrl).这有可能吗?
exports.config = {
seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar',
seleniumPort: 4455,
suites: {
all: 'test/*/*.js',
},
capabilities: {
'browserName': 'firefox'
},
beforeLaunch: function() {
console.log('I want to access my baseUrl parameter here: ' + config.params.baseUrl);
},
onPrepare: function() {
require('jasmine-reporters');
jasmine.getEnv().addReporter(
new jasmine.JUnitXmlReporter('output/xmloutput', true, true));
}
};
Run Code Online (Sandbox Code Playgroud)
如果我运行它我得到一个ReferenceError因为没有定义配置.我该怎么办?这甚至可能吗?
这是小提琴:http: //jsfiddle.net/D5h7H/7/
它呈现以下内容:
<div ng-repeat="group in Model.Groups">
<span>{{group.Name}}</span>
<div ng-repeat="filter in group.Filters">
<input type="checkbox" ng-model="filter.enabled">{{filter.Name}}
<select ng-disabled="!filter.enabled">
<option ng-repeat="value in filter.Values">{{value}}</option>
</select>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
它是从服务器加载到json中然后呈现给用户的过滤器列表(在一个例子中,json就是在Fiddle中生成的).目前有6组30个过滤器,每个过滤器有15个选项元素.
在Firefox中,现在需要大约2秒来重绘UI.
对于角度js,这个时间还可以吗?有没有什么我做错了导致2秒.渲染(因为2000元素对我来说看起来不是一个大数字,但2秒.肯定是大的)?
我想从浏览器获取验证码图像.我有这个图片的网址,但这张图片更改了每个更新的时间(网址是不变的).
是否有任何解决方案从浏览器获取图片(如"将图片另存为"按钮)?
从另一方面,我认为它应该是工作:
动态capcha - link的链接
问题通过截图解决:
browser.save_screenshot('screenshot.png')
img = browser.find_element_by_xpath('//*[@id="cryptogram"]')
loc = img.location
image = cv.LoadImage('screenshot.png', True)
out = cv.CreateImage((150,60), image.depth, 3)
cv.SetImageROI(image, (loc['x'],loc['y'],150,60))
cv.Resize(image, out)
cv.SaveImage('out.jpg', out)
Run Code Online (Sandbox Code Playgroud)
谢谢
我需要MockMixin
为我的测试创建一些.它应该包括调用外部源的所有内容的模拟.例如,每次我在管理面板中保存模型时,我都会调用一些远程URL.如果嘲笑并使用那样的话会很好:
class ExampleTestCase(MockedTestCase):
# tests
Run Code Online (Sandbox Code Playgroud)
因此,每次我在管理员中保存模型时,例如在功能测试中,应用此模拟而不是调用远程URL.
这有可能吗?我能够为1个特定测试做到这一点,这不是问题.但是有一些全局模拟更有用,因为我经常使用它.
以下定位技术有什么区别?
element(by.id("id"));
element(by.css("#id"));
element(by.xpath("//*[@id='id']"));
browser.executeScript("return document.querySelector('#id');");
browser.executeScript("return document.getElementById('id');");
而且,从性能角度来看,哪个是通过id定位元素的最快方法?
python ×5
angularjs ×3
django ×3
javascript ×3
protractor ×3
selenium ×3
algorithm ×1
e2e-testing ×1
firefox ×1
http ×1
ng-bind ×1
pageload ×1
performance ×1
python-mock ×1
testing ×1
unit-testing ×1
urllib2 ×1
views ×1
xml ×1
xml-parsing ×1
xpath ×1