问题标签 [splinter]

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 投票
1 回答
780 浏览

python - 从碎片中保存内联图像

我有一个页面,一旦运行一些 javascript,就会生成一个图像。我可以用它splinter来达到我有图像的地步,但我无法保存它。

我使用的代码非常简单:

但是屏幕截图是空的...

该页面基本上是:

我可以右键单击并保存图像,但不确定如何使用splinter.

此外,该图像是一个内联 png,当我检查它的来源时,它显示为:

data:image/png;base64,iVBORw0KGgoAAAANSUhEETC...

我该怎么做才能自动保存此图像?我正在尝试生成链接列表,然后遍历它们并保存每个链接的图像。

0 投票
0 回答
819 浏览

linux - Selenium/splinter 获取浏览器屏幕截图不起作用

我有一个脚本,它使用 splinter 来截取某个页面的屏幕截图。当我在我的家用计算机(ubuntu)上运行这个脚本时,它工作得非常好(截图)。当我在服务器上的终端(debiuan - sudo python)上运行它时,它也可以正常工作。但是,当我让它在服务器上运行脚本时,它似乎无法保存图片。

为什么是这样?我倾向于说python没有写权限,但我用sudo运行python脚本,我chmod 777目录,但它仍然无法保存图片。

是否有任何其他方式我必须授予 python 权限,或者这不是权限问题?

splinter 正在拍照的线是

0 投票
1 回答
2941 浏览

python - 使用 Python/Requests/BeautifulSoup 进行高效网页抓取

我正在尝试从芝加哥交通管理局bustracker网站获取信息。特别是,我想快速输出前两辆公共汽车的到达 ETA。我可以很容易地用 Splinter 做到这一点;但是,我在无头 Raspberry Pi 模型 B 和 Splinter plus pyvirtualdisplay 上运行此脚本会导致大量开销。

类似的东西

不成功。所有的数据字段都是空的(好吧,有  )。例如,当页面如下所示:

在此处输入图像描述

当我使用 Splinter 执行类似搜索时,这个代码片段s.find(id='time1').text给了我u'\xa0'而不是“12 分钟”。

我不喜欢 BeautifulSoup/requests;我只想要一些不需要 Splinter/pyvirtualdisplay 开销的东西,因为该项目要求我获得一个简短的字符串列表(例如,对于上图,[['9','104th/Vincennes','1158','12 MINUTES'],['9','95th','1300','13 MINUTES']])然后退出。

0 投票
1 回答
3251 浏览

python - 分裂:ImportError:无法导入名称浏览器

我是 Splinter 的新手,但我用过 python 几次。所以我希望使用 splinter 自动化一个网站。但是当我执行它时出现“ImportError:无法导入名称浏览器”错误。

这是我的代码。

在终端,这就是我得到的。

我怎样才能在没有任何错误的情况下运行这个程序?我已经提到了类似问题的解决方案,比如删除 splinter.pyc ,但这对我没有帮助。

0 投票
1 回答
957 浏览

python - 分裂:zope.testbrowser 的 DriverNotFoundError

我正在使用 Python Splinter 来自动化网站并从中抓取数据。当我使用在 Browser() 中保持空白的默认浏览器模式时,它会打开 firefox 并完成编写的任务,但是当我使用无头浏览器“zope.testbrowser”时,会出现以下错误。我应该在这里做什么?

0 投票
1 回答
1148 浏览

javascript - Python:实际可访问的文件上传分裂?

我有一个 Web 应用程序,它允许用户上传 XML 样式的文件,然后在浏览器中对其进行修改。

我正在尝试用 splinter 测试场景。如果我有正确的输入(id="form-widgets-body"):

在此处输入图像描述

...我可以找到它没有问题,以及使用attach_file它的名字:

brwsr.attach_file('form.widgets.body', PATH_TO_FILE)

但问题attach_file在于它实际上并没有使我可以访问该文件。也许它只是告诉输入已经填写了一些东西,这对其他类型的测试很好?(例如,在您上传文档 X 之前,您无法进入财务应用程序中的下一个屏幕)

我尝试send_keys了,但没有按预期工作:

话虽如此,一些问题:

  1. 实际上会send_keys做我想要的(即,就像真实的东西一样的可访问文件上传)?如果是这样,调用它的正确方法是什么?

  2. 如果没有,我还能做什么?(可能需要 js 吗?)

0 投票
2 回答
9100 浏览

python - Selenium Python Headless Webdriver(PhantomJS)不工作

所以我无法让 selenium 与无头驱动程序一起工作,特别是 PhantomJS。我试图让它在 Ubuntu 网络服务器(Ubuntu 14.04.2 LTS)上工作。

从 python 解释器(Python 2.7.6)运行以下命令给出:

我也试过:

我还将它添加到 python 路径中:

我目前以 root 身份登录。phantomjs 目录的权限是:

对于 phantomjs/webdriver.py:

我已经确认 selenium 已安装并且是最新的(pip install selenium --upgrade)。它安装在:

我看过:

我一直在使用 chromedriver 在本地托管的服务器(在 OSX 上)上测试我的程序。我实际上为此使用了 Splinter ( https://splinter.readthedocs.org/en/latest/#headless-drivers ),并尝试了其他无头驱动程序 (django 和 zope.testbrowser),但也遇到了类似的问题。

我愿意接受任何建议,如果需要,我不介意更换驱动程序。

提前感谢您的帮助。

0 投票
1 回答
437 浏览

python - Splinter 保存无实体的 html

splinter 0.7.3在 Linux 平台上使用模块python 2.7.2来使用默认的 Firefox 浏览器在网站上抓取目录列表。

这是通过单击 html 中的“下一步”链接来遍历分页 Web 列表的代码片段。

我知道链接正在工作,因为我看到的输出如下所示:

当 html 保存在每个页面上时,f.write(browser.html.encode('utf-8'))它适用于第一页。在随后的页面上,虽然我可以看到在 Firefox 中呈现的页面,但html/regiser_...html文件为空或缺少正文标记,如下所示:

这是从 splinter 中保存 html 的已知功能吗?有更好的方法吗?

0 投票
0 回答
215 浏览

python - 如何在框架集中找到元素?

如何使用 Python splinter 在框架集中找到元素?

我试过find_by_css, fi nd_by_xpath, find_by_tag, find_by_name,find_by_valuefind_by_idWebDriver: find_element_by_xpath

我遇到了一个ElementDoesNotExist例外,尽管我成功地找到了具有上述语法的其他元素。

0 投票
1 回答
1039 浏览

python - 如何用硒点击一个不可见的元素?

我使用此代码检查 splinter 的单击按钮选项:

我得到了例外:元素当前不可见,因此可能无法交互。等待浏览器不是解决方案(因为我做了很长时间的睡眠方法但仍然不起作用)。这是https://splinter.readthedocs.org/en/latest/#sample-code中显示的示例代码,但对我不起作用