Capybara提供了检查链接的有用方法:
have_link
Run Code Online (Sandbox Code Playgroud)
据我所知,可以使用如下:
have_link("link_text", :href => "actual link")
Run Code Online (Sandbox Code Playgroud)
但是,我并不关心link_text,而是我只想检查href(因为将测试链接到文本更加脆弱).如果我只想检查href这将是一个视图测试.
如何使用Capybara检查而href无需检查文本?也许我可以使用正则表达式?
[编辑]根据以下答案改变了措辞
我一直在扫描网络/ SO并阅读几个许可被拒绝请求帮助我只是找不到以我理解的方式解决我的问题.
我正在遵循这些说明(Heroku/Cedar上的Python入门).一切顺利,直到:
drewverlee@ubuntu:~/helloflask$ source venv/bin/activate
(venv)drewverlee@ubuntu:~/helloflask$ git push heroku master
The authenticity of host 'heroku.com (50.19.85.132)' can't be established.
RSA key fingerprint is ##:##:##:##:##:##:##:##:##:##:##:## (I replaced with #)
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/drewverlee/.ssh/known_hosts).
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
(不确定安全性,所以我用(#)替换了键)
我想这可能是因为
drwx------ 2 root root 1024 2012-03-08 21:26 .ssh
Run Code Online (Sandbox Code Playgroud)
因为
drewverlee@ubuntu:~$ ssh-keygen
Generating public/private rsa key …Run Code Online (Sandbox Code Playgroud) 所以我像草一样绿色,学习如何像计算机科学家那样思考编程:学习python 3.我能够回答这个问题(见下文),但我担心我错过了这一课.
编写一个函数(称为insert_at_end),它将为所有三个函数传递(返回前面给出两个参数的粗体):
test(insert_at_end(5, [1, 3, 4, 6]), **[1, 3, 4, 6, 5]**)
test(insert_at_end('x', 'abc'), **'abcx'**)
test(insert_at_end(5, (1, 3, 4, 6)), **(1, 3, 4, 6, 5)**)
Run Code Online (Sandbox Code Playgroud)
本书给出了这样的提示:"这些练习很好地说明了序列抽象是通用的,(因为切片,索引和连接是如此通用),因此可以编写适用于所有序列类型的通用函数."
这个版本没有在线解决方案(我可以找到),但在我找到了某人对该文本的早期版本(对于python 2.7)的答案,他们这样做了:
def encapsulate(val, seq):
if type(seq) == type(""):
return str(val)
if type(seq) == type([]):
return [val]
return (val,)
def insert_at_end(val, seq):
return seq + encapsulate(val, seq)
Run Code Online (Sandbox Code Playgroud)
这似乎是通过区分列表和字符串来解决问题......违背提示.那怎么样有没有办法回答这个问题(以及大约10个类似的问题)而没有区分?即不使用"type()"
我正在使用The Definitive指南在ubuntu上安装Django,具有讽刺意味的是需要一些更明确的东西,因为我无法使它工作.
(我在上面的链接上按照前面的步骤操作)
这是我的情况/停顿:
drewverlee@ubuntu:/var/src$ tar xzvf Django-1.3.1.tar.gz
tar (child): Django-1.3.1.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
所以它告诉我没有文件Django-1.3.1.tar.gz?我想我可以通过以下方式检查文件:
drewverlee@ubuntu:/var/src$ ls
index.html index.html.1
drewverlee@ubuntu:/var/src$
Run Code Online (Sandbox Code Playgroud)
我需要做什么?
是否有内置方法将pylint报告保存到文件中?这样做可能有助于记录项目进度并在进行更改时比较多个文件中的报表元素.
我在这方面很幼稚。我不确定为什么我的连接超时。提前致谢。
#!/usr/bin/env python
import socket
def socket_to_me():
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect(("192.168.95.148",21))
ans = s.recv(1024)
print(ans)
Run Code Online (Sandbox Code Playgroud)
此代码生成的追溯
Traceback (most recent call last):
File "logger.py", line 12, in <module>
socket_to_me()
File "/home/drew/drewPlay/python/violent/networking.py", line 7, in socket_to_me
s.connect(("192.168.95.148",21))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
timeout: timed out
Run Code Online (Sandbox Code Playgroud) 所以,我正在尝试学习 Python,每次我在这里发布问题时,都感觉像是屈服了......
我正在尝试制作我自己的turtle.Turtle类。
import turtle
class TurtleGTX(turtle.Turtle):
"""My own version of turtle"""
def __init__(self):
pass
my_turtle = TurtleGTX()
my_turtle.forward(10)
Run Code Online (Sandbox Code Playgroud)
提供回溯:AttributeError: 'TurtleGTX' object has no attribute '_position'。然后我学到的是一个“私有变量”,根据官方的python教程,我可以在我的子类TurtleGTX中修改/覆盖。如何用一个像乌龟一样大的程序来做到这一点似乎相当困难,这意味着我缺少一个更简单的问题解决方案。最后我学到了,这就是重点,但我仍然希望由社区运行它,看看是否有一种优雅的方式来创建一个turtle.Turtle的子类。(下一步是让你的乌龟表现出与标准乌龟不同的行为)
所以下面的评论让我觉得也许我可以这样做:
import turtle
class TurtleGTX(turtle.Turtle):
"""My own version of turtle"""
my_turtle = TurtleGTX()
my_turtle.forward(100)
Run Code Online (Sandbox Code Playgroud)
哪个实际运行!现在我要看看这会把我引向何方……有些东西告诉我,我可能已经向前走了两步,因为这意味着我将无法在我的子类上初始化任何东西……
我的语言是python
输入看起来像:
'0 0 0 0 1 0 0 0 1 1 0 0'
Run Code Online (Sandbox Code Playgroud)
等等.
我想要输出:
('0 0 0 0', '1 0 0 0', '1 1 0 0')
Run Code Online (Sandbox Code Playgroud)
或者每组4个数字都是它自己的元素
到目前为止,我已经放在一起
>>> truth = re.compile('(([0-1]\D*?){4})*')
>>> truth.search('0 0 0 0 1 0 0 0').groups()
('0 0 0 0', '0')
Run Code Online (Sandbox Code Playgroud)
或者几个类似的东西,但没有什么比这更近了.这里的一些事情对我来说是新的,我正在阅读文档,但似乎无法拼凑出什么分崩离析.值得注意的是我现在不知道为什么我会得到最后的0 ...
输入最终将是许多行,但如果它适用于小案例,我相信它会翻译.
谢谢