问题标签 [sahi]

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 回答
660 浏览

phantomjs - 使用 behat 测试本地 PHP Web 应用程序时,Sahi + PhantomJS 失败

我在测试设置了 behat+sahi+phantomjs 的本地托管 Web 应用程序时遇到问题。

  • 我只用 behat+sahi+chrome 运行了完整的套件,效果很好
  • 我还针对运行良好的现场 stie 测试了一个小样本 behat 测试

当我将 base_url 指向本地托管的应用程序或部署了该应用程序的服务器时,问题似乎都会发生

像这样简单的事情:

输出结果:

我正在使用此处详述的设置:http: //shaneuckland.co.uk/2012/11/headless-behatmink-testing-with-sahi-and-phantomjs/

这是配置问题吗?还是因为该应用程序也托管在本地主机上?

我可以尝试如何进一步解决此问题?

谢谢

0 投票
0 回答
950 浏览

stub - Selenium 模拟服务器访问

我有一个网站,我想使用 Selenium WebDriver(2.28 版)进行测试,并将其与我的 CI(Maven 和 Hudson)集成。

问题是为了正确测试前端,我需要访问服务器(对于实际的 HTML 和 REST 资源)。如果我在构建过程中访问我构建和部署的实际服务器,则测试将不会被完全封装,因为每次数据可能都不同(基于在构建环境的数据库中驻留的数据)建造)。

因此,在我看来,我必须模拟服务器访问。我只是在 Selenium 中找不到对此的支持,而且我想不出没有 Selenium 支持的最佳方法。

我可以在实际服务器中的不同 URL 上为我的所有资源(HTML 和 REST)创建模拟,并在我的测试中访问这些资源而不是生产级资源(使用某种标志来指示我应该访问模拟资源而不是真实资源)。但这并不是真正的嘲讽...

作为参考,我看到在 Sahi 测试框架中有一个 addMock(url, class_function) 的特性 - 当 Sahi 运行到指定的 URL 时,它将调用指定的类和函数而不是访问 URL,而类和函数应该提供资源,而不是提供资源的 URL。

我正在 Selenium 中寻找类似的东西(尽管可能不可能,因为 Sahi 充当代理)。

非常感谢,丹尼尔

0 投票
2 回答
1621 浏览

php - 无法在 Symfony2 应用程序中使用 Sahi / Mink / Behat 上传文件

我在 Symfony2 应用程序中使用 Mink 和 Sahi 进行用户界面测试。但实际上我无法使用 Sahi 上传文件。

我的 Sahi 服务器已启动并正在运行:

我的步骤实现:

请注意,如果我使用不是/home/coil/Webdev/sahi/userdata目录的文件,则会收到以下错误:

因此,Sahi 可以“找到”该文件,因为它不会对有效且现有的文件引发任何错误。但是当提交表单时,Sahi 代理永远不会上传文件。

其他检查:

  • 我删除了客户端 HTML5 和 JavaScript 验证以确保没有副作用。
  • 我所有其他的 Sahi 测试都可以,只有 3 个带有 Upload 的测试没有通过
  • 代理是在我的测试浏览器中设置的
  • 我可以毫无问题地在浏览器中打开 Sahi 控制器
  • MaxOsX 和 Ubuntu 上的同样问题
  • 每次我运行上传测试时,我都会在 /userdata/temp/download 中有一个新条目,命名为sahi_11a83f8806be8046fc0aaa80eac076110b95__fr-fr-2-0.bdic

真正奇怪的是,我确信这些测试已经通过了一段时间,我的应用程序或配置中肯定发生了一些改变,这会破坏 Sahi 文件的上传,但我找不到什么。之前在 Sahi 控制台中,我有关于它正在上传的文件的日志,现在根本没有日志。

0 投票
1 回答
154 浏览

sahi - 使用双 UI 进行测试

我有一个基于浏览器的测试程序,用于测试基于浏览器的应用程序。这意味着我需要记录交替操作测试程序和应用程序的序列,以检查它是否正确反应,以便我可以执行自动化测试。

我应该如何使用 SAHI?

我看不到同时记录两个单独 URL 的方法。我尝试使用框架和 iframe 组合两个 UI,但我无法让 SAHI 记录在框架/iframe 中。

我可以修改测试程序,以便我可以从 SAHI 调用的脚本中调用它,但这反而违背了拥有自动化工具的目标......

有什么建议么?

0 投票
1 回答
1129 浏览

javascript - sahi - 动态表

我试图弄清楚如何找到特定文本值所在的行号(它是一个动态创建的表,所以如果删除/添加某些内容,行号会改变。)然后我想从中获取文本该行中的一列(始终相同 [5]),将其保存到变量中,然后对保存的文本执行断言。我在这里看到了一些代码,它允许我循环遍历表格的行,但是我还没有看到循环遍历表格行直到找到特定内容的代码,我见过的所有示例总是到最后有问题的表。

任何指针表示赞赏。

0 投票
1 回答
1052 浏览

sahi - sahi 和表操作

对于给定的表,我想得到以下

  1. 总行数
  2. 能够按行和列迭代

使用Java 驱动程序。我尝试了这里提到的选项,但没有运气。

下面是表格的 HTML

0 投票
1 回答
1421 浏览

excel - 如何使用 Sahi Pro _getExcel API 在 Excel 文件中设置单元格值?

所以这是我的脚本:

最后一行中关于该$db.set函数的某些内容因错误而失败Wrapped java.lang.NullPointerException。我尝试过传递带括号和不带括号的索引,但总是得到相同的结果。有人知道我要去哪里错了吗?

当前所有在线帮助似乎都使用旧方法,将 Excel 文件视为具有该_dbGet功能的数据库。

0 投票
1 回答
1069 浏览

html - 在利用验证数据属性的 HTML5 文本框上使用 Sahi 函数 _setValue() 时遇到问题

我尝试在我的 HTML5 登录页面上的文本框中插入文本,但它不起作用。控制器发现元素没问题,当脚本被播放时,它甚至将案例记录为成功,但没有填充文本。

这是文本框的来源:

<input id="Username" class="standard defaultfocus input-validation-error" type="text" value="" name="Username" maxlength="100" data-val-required="Please enter a valid Email Address" data-val-regex-pattern="^[a-zA-Z0-9]+(\.{0,1}[a-zA-Z0-9_%+-]+)*\@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+$" data-val-regex="Please enter a valid Email Address" data-val="true"></input>

这是Sahi脚本:

_setValue(_textbox("Username"), "email@email.com");

知道如何让 Sahi 填写这个 texbox 吗?

谢谢。

0 投票
1 回答
749 浏览

sahi - 有没有办法在使用 Sahi Pro 播放期间处理弹出窗口,而每个弹出窗口都不会打开自己的控制器窗口?

我正在使用 Sahi Pro 测试链接列表,每个链接都会打开一个弹出窗口,我必须在其中断言一些元素可用。我可以使用 _closeWindow 摆脱每个弹出窗口,但我注意到每次加载新弹出窗口时,它都会打开一个新的 Sahi 控制器窗口来执行该弹出窗口中的脚本。当弹出窗口关闭时,这些控制器窗口不会关闭。不久之后,就会有太多打开的控制器窗口导致测试执行冻结。

有没有办法以编程方式关闭这些控制器窗口?还是首先防止每个弹出窗口出现新的弹出窗口?

0 投票
1 回答
438 浏览

ruby - 如何在 sahi for ruby​​ 中通过多个属性查找对象

在 Sahi 控制器中,这工作正常

但是我在 sahi 下面尝试了 ruby​​,它总是返回 false。