问题标签 [twill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
223 浏览

python - 将正则表达式与斜纹一起使用

我目前正在使用 urllib2 和 BeautifulSoup 来打开和解析 html 数据。但是,我遇到了一个在页面呈现后使用 javascript 加载图像的网站的问题(我试图在页面上找到某个图像的图像源)。

我在想 Twill 可能是一个解决方案,并且正在尝试打开页面并使用带有“find”的正则表达式来返回我正在寻找的 html 字符串。我在让它工作时遇到了一些麻烦,而且似乎找不到任何关于如何将正则表达式与斜纹一起使用的文档或示例。

任何有关如何执行此操作或解决此问题的帮助或建议将不胜感激。

0 投票
1 回答
1225 浏览

python - Python 2.7 使用斜纹,正确保存下载的文件

这就是我目前正在尝试使用的。

该网站的工作方式如下:

  1. 登录页面重定向到另一个表单,让我选择要生成的报告。
  2. 我想要所有默认选择,所以我只是再次提交页面。
  3. 然后我访问另一个生成报告的页面,然后强制下载文件。

redirect_output 不保存 xls 文件。

save_html 确实保存了信息,但它损坏了某些东西,Excel 根本无法读取它。我使用 kdiff 来检查任何差异,它声称有很多但左/右的数据是相同的,想知道这是否是 line-endings..etc 的问题。不是100%确定。

我已经检查了斜纹布网站上的命令页面,但我不确定如何去做。

0 投票
1 回答
630 浏览

python - Flask 应用程序的功能测试:奇怪的斜纹回溯

我正在测试我的 Flask 应用程序。

总之,这是我的问题:

1) 我在下面的代码块中的最终 url 断言失败。根据 Twill 的说法,它失败了,因为实际的 url 是'/auth/login'。换句话说,用户没有被重定向到受保护的管理页面。为什么?

2) 如何在我的 url 断言中包含“/?next='admin'”请求参数?换句话说,有没有一种方法——通过斜纹或任何 Pythonic 手段——来测试正确解析的“下一个”参数?

3)在功能测试中,除了断言 301 状态代码之外,还有其他方法可以显示重定向工作吗?

这是我的脚本中与斜纹相关的部分......

这是结果回溯:

注意:奇怪的是,在“go”命令之后断言 200 状态代码不会返回任何类型的错误。我想表明,在登录上述 URL 后,最终 URL 确实是管理页面。像这样...

我想运行的测试没有失败,但不能......

0 投票
1 回答
616 浏览

python - 使用带有斜纹的 showforms() 命令时出现解析错误

我对这个程序的想法是有一个简单的(假设是)脚本来监控现在是什么时间,当它在某个时间范围内(例如早上 6 点到晚上 7 点)时,它会导航到 opendns.com 并阻止某些网站使用 web 内容过滤功能。

我以为我会从简单的开始,只需找出登录网站和阻止网站的命令,然后担心时间监控等。但可悲的是,我也遇到了麻烦。

我正在使用http://twill.idyll.org/但不确定这是否是个好主意。这是除了 mechanize 之外我能找到的唯一一个(我找不到正确的文档,但也许我只是没有在正确的地方寻找)

这是我的代码(嗯,它还不是真正的代码。只是 Python Shell 的命令列表):

现在这就是我的问题开始的地方。在最后一个 b.showforms() 我收到一个错误:

0 投票
1 回答
561 浏览

python - 斜纹布是否适用于 HTTPS?

我刚拿到 Twill 并且正在使用它,它似乎与 HTTPS 网站有问题。例如,命令go(' http://boston.craigslist.org/ ')可以正常连接,但go(' https://accounts.craigslist.org/ ')失败。尝试连接其他 HTTPS 链接时出现同样的情况,但 HTTP 链接没有问题

工作正常

不工作

0 投票
1 回答
1269 浏览

python - 如何通过斜纹点击按钮?

我想去一个站点并单击一个按钮或链接进行登录。但是登录不使用表单。

我认为登录程序使用javascript。

输入用户名:

登录链接为:

我怎样才能点击这个链接,我怎样才能用斜纹填充用户名?斜纹布还有其他替代品吗?

谢谢,

0 投票
1 回答
444 浏览

python - 在 Python 中优雅地抑制斜纹输出

我最近一直在玩 Twill 和 BeautifulSoup 来做一些基本的屏幕截图。但是,似乎我正在使用的命令之一是将一堆不需要的输出打印到屏幕上。这是我用来登录相关网站的代码的快速片段:


目前,我正在使用“redirect_output()”函数将不需要的输出通过管道传输到一个垃圾填充的文本文件……但这似乎是一个非常hackish的解决方案。是否有更优雅的方法来避免使用上述命令进行过度打印?

0 投票
2 回答
16526 浏览

python - 发送带有机械化和请求的 POST。

我正在尝试使用 mechanize 发送 POST 但是我的代码有时无法正常工作(我知道为什么)。我用过mechanize、twill 和requests。对于机械化和斜纹布,它正在工作,而对于要求,它不是。可能我做错了。

我的机械化代码。以下作品:

我的斜纹码。它也有效:

据我了解,机械化或斜纹首先获取页面,填写表格并发送表格。但这里的问题是,有时目标页面显示随机页面,没有任何形式。在那种情况下,我得到一个错误,显然是因为没有表格可以显示。我不想处理这个错误,因为我已经知道帖子 URL。即使显示了一些随机页面,在我单击下一步后,也会加载相同的表单。POST url,字段都保持不变。所以我想直接发送 POST 请求,因为我已经知道所有需要的细节。这是我的代码,基于

我收到一个错误:

我对请求进行了同样的尝试。但我收到与上述相同的错误。这是代码:

所以我在这里和那里戳了戳,阅读了更多在线可用的代码,我认为它不起作用,因为要防止 CSRF。所以我用斜纹布去了同一页,做了showforms,发现token有一些价值:

在此处输入图像描述

这是我想要的:

  1. 使用 mechanize 和 requests 进行 POST(无需先下载页面)
  2. 如何处理 CSRF 令牌?
  3. 如何调试'urlopen错误[Errno 61]连接被拒绝'
0 投票
1 回答
1421 浏览

python - Python mock.patch 没有修补正确的导入

代码

错误

我的理解

我对这个问题的理解mock是试图模拟twillsubprocess模块而不是 python 模块。

问题

  1. 难道我做错了什么 ?

  2. 如何指定我要修补 pythonsubprocess模块而不是斜纹的模块?(可能已在测试套件中较早导入)**

  3. 还有其他方法可以修补subprocess模块吗?

我试过的

  • 我试过了with patch('tools.subprocess.check_output', ...

不工作。

  • 我厌倦了使用装饰器...

也不起作用

  • 我累了直接给subprocess模块打补丁subprocess.check_output = Mock( ...

可以,但效果不好,因为它不会撤消修补。

更多信息

如果我只运行这个测试而不运行其他测试,它会起作用,因为 twill 的子进程模块从未被导入。但是一旦我使用斜纹运行测试,上面的测试就会失败。

是斜纹布的子进程版本,看起来像是从旧版本的 python 复制粘贴的。它没有任何check_output功能,这就是测试失败的原因。

Twill 的包来自我广泛使用的Flask-Testing插件。我在这里在 github 上提交了一个问题。

我希望可爱的 python 社区的人可以提供帮助。:)

0 投票
1 回答
412 浏览

python - AttributeError:类型对象“HTTPConnectionPool”没有属性“ConnectionCls”

运行鼻子测试时,使用 Flask-test 我不断收到此错误:

此外,在尝试运行时,twill-sh我也会遇到同样的错误。