是否可以从Selenium脚本(Selenium IDE中的纯HTML保存脚本)中检索基本URL的值?
我要做的是验证当前的URL使用assertLocation
.但是assertLocation
返回绝对网址.我想将当前网址与相对网址进行比较,而不必*
在网址的开头使用.
我想访问基本字符串,因为我希望能够在不同的站点(各种开发站点+生产站点)上运行测试,但如果我使用的话,*
我无法检查根页面(*/
将是真的对于以/
... 结尾的每个页面
这就是我目前所做的事情:
| assertLocation |*/some-page | |
这就是我想做的事情:
| assertLocation | baseURL +"/ some-page"| |
注意:甚至可以:
随着gettext
你要么可以使用默认的系统范围内的区域设置目录,或使用指定一个自己bindtextdomain
.当编译的.mo转换文件在系统的默认位置不可用时,直接从源运行程序时这很有用.
在Python中你会这样做:
import gettext
from gettext import gettext as _
gettext.bindtextdomain('nautilus-image-manipulator', '/path/to/mo/folder')
gettext.textdomain('nautilus-image-manipulator')
Run Code Online (Sandbox Code Playgroud)
其中/path/to/mo/folder
包含熟悉的fr/LC_MESSAGES/nautilus-image-manipulator.mo
结构.这样的电话:
print _("Delete this profile")
Run Code Online (Sandbox Code Playgroud)
从本地.mo文件返回正确翻译的字符串,非常感谢.
在GTK + 2/pygtk中,存在gtk.glade.bindtextdomain
,但我想知道GTK + 3/PyGObject中是否有任何等价物.
为了给你一个具体的例子,这是Nautilus Image Manipulator的UI是如何从它的Glade文件创建的:
from gi.repository import Gtk
builder = Gtk.Builder()
builder.set_translation_domain('nautilus-image-manipulator')
builder.add_from_file(ui_filename)
return builder
Run Code Online (Sandbox Code Playgroud)
不是从Glade文件构建的UI部分(即从代码中设置)显示正确翻译,但Glade文件中的字符串仍显示为英文.
在我看来,在打电话builder.bind_text_domain('nautilus-image-manipulator', '/path/to/mo/folder')
之前我错过了某种呼叫builder.set_translation_domain
......任何想法如何执行此操作?
的hashlib
Python模块提供了以下的散列算法的构造:md5()
,sha1()
,sha224()
,sha256()
,sha384()
,和sha512()
.
假设我不想使用md5,那么使用sha1而不是sha512会有很大的不同吗?我想使用类似的东西hashlib.shaXXX(hashString).hexdigest()
,但因为它只是用于缓存,我不确定我需要(最终)额外的512开销......
是否存在这种开销,如果存在,它有多大?
我想使用用户自己的语言提供我的Python GAE网站,只使用App Engine中直接提供的工具.为此,我想使用GNU gettext文件(.po和.mo文件).
有人成功结合了Python Google App Engine和gettext文件吗?如果是这样,请您提供您使用的步骤?
我已经开始在GAE的Google小组中进行讨论,但是无法从中提取出我想要做的事情:我不想添加外部依赖项,例如Babel(在讨论中建议).我想使用普通的香草Google App Engine,所以不要手动更新Django或者这种东西.
首先,我将开始使用浏览器发送的语言,因此无需使用cookie等手动强制语言.但是,一旦基本国际化工作,我可能会在以后添加语言更改功能.
作为背景说明,为了向您提供有关我正在尝试做的更多详细信息,我想将Issue Tracker Tracker国际化,这是我在Launchpad上托管的开源应用程序.我计划使用Launchpad的翻译平台(解释我为什么要使用.mo文件).您可以查看它的Bazaar分支中的源代码(抱歉没有链接,因为新用户的stackoverflow垃圾邮件防护限制......)
感谢您帮助我推进这个项目!
在询问有关为存储在Google App Engine数据存储区中的图像发送"304 Not Modified"的问题后,我现在有一个问题Cache-Control
.
我的应用程序现在将Last-Modified
和Etag
,但默认情况下GAE alsto发送Cache-Control: no-cache
.根据这个页面:
根据RFC,"no-cache"指令告诉浏览器它应该在从缓存提供页面之前重新验证服务器.[...]实际上,IE和Firefox已经开始处理no-cache指令,就像它指示浏览器甚至不缓存页面一样.
因为我希望浏览器缓存图像,所以我在代码中添加了以下行:
self.response.headers['Cache-Control'] = "public"
Run Code Online (Sandbox Code Playgroud)
根据以前的同一页面:
"cache-control:public"指令[...]告诉浏览器和代理[...]页面可以被缓存.这对非敏感页面很有用,因为缓存可以提高性能.
问题是,这是否会以某种方式对应用程序有害?是否最好发送Cache-Control: must-revalidate
"强制"浏览器重新验证(我认为这是最初发送的原因Cache-Control: no-cache
)
该指令坚持要求浏览器在从缓存提供服务器之前必须重新验证页面.请注意,它隐式地让浏览器缓存页面.
我将用户上传的图像存储在Google App Engine数据存储区中db.Blob
,如文档中所建议的那样.然后,我将这些图像提供给/images/<id>.jpg
.
服务器总是发送200 OK
响应,这意味着浏览器必须多次下载相同的图像(==较慢),并且服务器必须多次发送相同的图像(==更昂贵).
由于大多数图像可能永远不会改变,我希望能够发送304 Not Modified
回复.我正在考虑在用户上传时计算图片的某种哈希值,然后使用它来知道用户是否已经拥有此图像(可能将哈希发送为Etag
?)
我找到了这个答案和这个答案很好地解释了逻辑,但我有两个问题:
Etag
Google App Engine?显然,Python只支持2个次要版本(如2.X),这意味着当Python 2.7问世(2010年6月?)时,Python 2.5将被逐步淘汰.
它是否正确?PEP 356 - Python 2.5发布计划对这个问题没有太多答案.
例如,此处的OBR段引用表具有以下标头:
以下是我的观察:
OBR.1
,OBR.2
,OBR.3
等等.0
?SI
,EI
,ST
,XCN
,ID
,NDL
,等.以下是我不了解的主要内容:
O
,R
,RE
,C
,B
,X
,W
*
,1
,2
0065
,0074
,9999
python ×6
gettext ×2
http ×2
caching ×1
gtk3 ×1
hash ×1
hashlib ×1
hl7 ×1
hl7-v2 ×1
httphandler ×1
pygobject ×1
python-2.5 ×1
selenium ×1
selenium-ide ×1
testing ×1
translation ×1