问题标签 [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 回答
410 浏览

symfony - 我不能运行 sahi

可能重复:
sahi 和 symfony2

我想用 symfony2 测试 behat、mink 和 sahi。

在我的文件 config_test.yml 我有

在我的 test.feature 当我使用

结果很好:

但是当我添加@mink:sahi我得到

你有什么主意吗?

0 投票
1 回答
615 浏览

internet-explorer-9 - Sahi 自动测试文本字段空白和文件上传不起作用

我正在试用 Sahi 进行测试自动化。我正在尝试完成使用 Orbeon 表单构建的表单。我在 Windows 7 上使用 IE9。

基本上我完成了一个表格(其中包含提交所需的不同阶段的选项卡和链接)。它还包括附加一个或多个文件。

测试完成,Firefox 和 Chrome 工作正常,除了文件上传,即使它们没有生成错误,文件实际上也没有上传。

在 IE9 上运行相同的测试会产生脚本错误。因此,我使用 IE9 创建了一个特定的测试。这运行时不会产生任何错误,但所有文本输入字段和下拉字段在检查时最终都是空白的。此外,文件不会上传。

关于可能是什么问题的任何想法?

提前致谢...

0 投票
2 回答
1324 浏览

browser - Sahi 的代理不再正常工作

我有一套使用 Sahi 为我们的网站进行的测试。这些测试是自动化的,并输入到我们的 Jenkins 构建系统中。

测试在专用 PC 上运行,该 PC 没有其他用途。它安装了 Sahi 以及所有浏览器。Jenkins 服务器对测试 PC 进行远程调用以运行测试。由于运行所有测试需要时间,因此该功能测试套件会在一夜之间运行。

几个月来,这个系统运行良好。但突然,几周前的一天,我走进办公室,发现所有的测试都失败了。从那以后他们就没有工作过。据我所知,没有任何重大变化(我们显然保持浏览器版本是最新的,但我不认为失败与任何更新同时发生;Sahi 本身自去年以来就没有更新)

我做了一些工作来找出发生了什么:

Sahi 使用代理作为其浏览器控制魔法的一部分,我相信这个代理是问题的根源。但我无法弄清楚如何或为什么。

当 Sahi 控制下的浏览器加载要测试的页面时,似乎没有一个 HTTP 请求成功。显示了原始页面内容(我认为是因为它被缓存了),但没有显示样式、图形或脚本(浏览器已经缓存的除外)。此外,Sahi 脚本随后尝试单击按钮以继续进行测试,但浏览器无法加载任何内容。Sahi 稍等片刻,但最终脚本超时并且测试失败。

手动运行 Sahi 时,我可以在受影响的 PC 上复制它。它发生在任何站点和所有浏览器中。然而,它不会发生在我自己的台式电脑上,它安装了所有相关软件的相同版本。当然,过去它在测试盒上运行良好。

我试过卸载 Sahi 和浏览器,然后从头开始重新安装。这没有任何区别。(我很欣赏卸载通常不会真正删除所有内容,所以也许我可以在这里做更多的事情?)

我真的希望有人可以在这里帮助我,因为我不确定还有什么可以尝试的。

提前谢谢了。

0 投票
0 回答
1919 浏览

selenium - Selenium webdriver vs Sahi

对于这个问题,我参考了一些关于堆栈溢出的博客和早期帖子。但这些比较与早期版本的 selenium(1.0) 有关。因为当前版本的 selenium(webdriver) 非常丰富并且还支持跨浏览器和其他功能(甚至 Watir-WebDriver 使用 selenium).. 任何人都可以提供一些关于 sahi 与当前版本的 selenium webdriver 的基本比较分析.. 任何建议将不胜感激.. 谢谢..

0 投票
1 回答
1085 浏览

phantomjs - 我们网站的功能测试

我正在与Mink / Sahi合作为我的网站编写功能测试套件。

我使用 Firefox 和 Chrome 进行了一组测试,对此我很满意。他们每晚都在我们的 Jenkins 盒子上运行,并且运行良好。

然而,因为我们的 Jenkins 盒子是一个服务器,而 Chrome/Firefox 是 GUI 应用程序,所以我不得不让测试在我的台式机上运行。这很痛苦,因为这意味着我必须每晚都打开它,这不利于环境和成本。另外,如果它在电源、网络或软件方面有任何问题,那么测试就会失败。

所以我想要一些关于切换测试以在 Jenkins 盒子本身上使用无头浏览器的建议。

看来我有三个选择:Goutte、Zombie 和 Phantom(当然,除非有人可以推荐另一个)。以下总结了我到目前为止的进展:

  • Goutte:这是 PHP 驱动的,因此可以在 Mink 内部运行,无需 Sahi。这听起来很棒,因为 Jenkins 盒子的资源有限,所以我需要安装和运行的越少越好。但是,我需要运行 JS 代码作为测试的一部分,我知道 Goutte 无法做到这一点。这能排除吗?

  • Zombie:在 Node.js 下运行。不幸的是,我根本无法完成这项工作。我已经安装了 Node、NPM 和 Zombie,但我无法让 Mink 识别它。谁能给我一些比 Mink 网站更清晰的说明,告诉我如何运行它?

  • Phantom:不幸的是,Mink 没有 Phantom 的驱动程序,所以我必须通过 Sahi 运行它。正如我所说,我宁愿不必在 Jenkins 服务器上安装 Sahi,尤其是因为它还需要作为服务器连续运行。但这是迄今为止我唯一成功的。在 Sahi 下运行它,我可以让我的测试成功运行(虽然不是一致的,这是一个令人担心的问题 - 它似乎随机超时,大约三分之一)。任何人都可以建议一种无需安装 Sahi(或任何其他中间层服务器)即可运行它的方法吗?或者如果我确实需要 Sahi,谁能告诉我如何配置 Jenkins 以在测试套件开始时启动 Sahi 并在结束时停止它?

我真的很感激任何关于如何进行的建议。出于某种原因,这些选择似乎都没有明显的胜利。但是功能测试很重要,所以这一定是一个已解决的问题。对我来说最好的解决方案是什么?

(我知道还有用 Javascript 重写我的脚本以直接与 Zombie 或 Phantom 对话的选项。我不想这样做,因为当它们失败时,我仍然需要看到它们在 Firefox 中运行以查看发生了什么错了,所以像 Mink 这样的跨浏览器界面是理想的——更不用说我已经用 PHP 编写了所有测试!)

感谢您的任何建议。:)

0 投票
1 回答
431 浏览

webautomation - Sahi Scripts does not work on Internet Explorer and Opera Properly

I generate some automation script with using Firefox. Now i playback the scripts in Firefox. Everything is going rigth but in Opera have some Problem. Also in Internet Explorer same as..

In Internet Explorer, this part of the code is generally shown as Failed after script execution:

Also in Opera,

_sahi._popup("csi")._sahi._click(_sahi._link("Bilgi Güncelleme")); //This part is failed. Related with Character set ?

Finally, This fail parts are working fine in Firefox. What should i do to fix these problems.

Thanks and BR,

0 投票
1 回答
527 浏览

testing - 无法在 Sahi 中生成 junit 报告

我有一个包含 3 个测试用例(.xls 文件)的测试套件。使用 ant 脚本我正在运行测试套件,但 junit 报告使用 TEST-excelfw_firefox.xml(/temp/junit/..) 生成所有 xml。所以最后我只得到了一个 .xml 文件而不是 3 个。如何在 Sahi 中使用 ant 生成具有不同名称的 .xmls?

0 投票
2 回答
507 浏览

ui-automation - 如何在 Sahi 中选择字体节点?

我正在使用 Sahi 在 IE8 中记录我的操作。我的页面包含此标记:

当我单击上面定义的按钮时,Sahi 记录:

但是当我回放这个时,按钮没有被点击。然而,

返回真。

我在 concat.js 文件中添加了以下行,以尝试使其检测字体节点:

但这似乎没有任何效果(我已经重新启动了 Sahi)。我对正在测试的页面没有任何控制权,我不确定是选择了 td 节点还是 font 节点。

如何触发字体节点的 onclick 事件?

编辑:我已将 _font 添加到 sahi/config/normal_functions.txt

使用 IE 工具手动调整页面以使 onclick 甚至在 td 上也会导致记录相同的步骤,但它现在会播放它。

不幸的是,我无法对页面进行任何更改,我仍然需要播放字体节点上存在的 onclick 事件。

两个都

[异常] [对象错误]

0 投票
1 回答
3576 浏览

behat - Behat 2.4 升级问题,或“behat”下无法识别的选项“extensions” - 尝试通过 behat.yml 激活 sahi 扩展时出错

Behat 的东西相当新,我遇到了一个我似乎无法绕过的障碍。我一直在盯着文档,在谷歌上搜索就像这是我的工作,并尽我所能避免把我的电脑从防火梯上扔掉。

我正在处理一个相当复杂的项目,而我不是设置它的人。所以我在某些方面有点迷茫。

目前,我正在尝试使用 Sahi 驱动程序,因为 selenium 并没有为我需要测试的一些动态形式削减它。我可以使用默认的 selenium 驱动程序很好地运行测试,但测试失败,因为它没有充分触发表单输入上的 JavaScript 事件。具体来说,它将与该链接中涵盖的解决方法一起使用,但前提是我将浏览器放在焦点上。这意味着当测试在酱汁中或通过 jenkins 与 xvfb 运行时,它会失败。

我解释这一切只是因为这是我的更大问题,我试图通过使用 Sahi 驱动程序来解决这个问题。这让我想到:

这就是我尝试按照文档所说的方式为我的 bahat.yml 中的特定配置文件激活 Sahi 驱动程序时得到的结果。

这是默认配置文件和我当前在我的 behat.yml 中使用的配置文件(稍作修改以供公众使用):

Fwiw,测试在一个 vm 上,我 ssh -X 进入,然后使用运行测试

当我使用默认的 selenium 驱动程序和 @javascript 标签时,浏览器会弹出并且测试运行并通过(当然,假设我保持浏览器处于焦点)。

我使用 composer 安装了额外的驱动程序:

我已经添加use Behat\Mink\Driver\SahiDriver;到我的 MinkContext.php、EnvironmentContext.php 和 FeatureContext.php,虽然我猜这可能是矫枉过正或没有必要。不过,在这一点上似乎没有什么不同。无论有没有它,我都会遇到同样的错误。

我还添加了一个sahi.php位于 features/bootstrap/mink 中的:

exensions我想也许出于某种原因在 features/bootstrap 中添加一个目录可能会有所帮助。甚至在其中插入了一个名为sahi.php. 那没有多大帮助。

我认为这涵盖了一切。提前感谢您的帮助,如果其他地方对此有所帮助,请指导我,因为我已经花了无数个小时寻找并没有找到任何可以帮助我的东西。

更新:

我按照此https://lestbddphp.wordpress.com/2012/08/31/behatcomposer/卸载了旧版本的 behat、mink 和 gherkin,并安装了 2.4 等

我一直在通过文档中的“从 Behat 2.3 迁移到 2.4”。(抱歉,不允许我发布更多链接,但它在 Behat 官方文档中。)

我的composer.json

behat.yml按照指示将文件移动到项目的根目录。我将我的default个人资料更新为:

虽然我不完全确定这就是我需要的。只需按照文档中给出的示例进行即可。

我更新了我vendor/autoload.php的替换require_oncerequire

但我对此有点困惑,因为该文件与 docs 中的示例代码不同。如果我要在此处的文档中添加该行,而不是已经存在的内容,那么它只会加载自己。(我试过了。它吐了。)我是不是完全密集,还是这里的措辞令人困惑/误导?我做对了吗?

正如我之前提到的,我有 3 个上下文文件features/bootstrap

通过 cli 运行测试时,我将它传递--profilebehat.yml. 在几乎所有的配置文件中,FeatureContext都使用了。

FeatureContext然后得到EnvironmentContextand MinkContext,据我所知。所以,理论上,一切都应该在那里工作。

只是它不是。

在我添加所有 Symfony 的东西之前,我得到了这个:

这就是为什么我通过作曲家添加 Symfony 的东西。

还可能值得注意的是:当我忘记通过作曲家安装 Symfony 的东西之前给它传递一个 --profile 时,我得到了这个:

我想这是可以预料的。

所以我现在很茫然。想法?

我将继续努力,看看我是否能弄清楚,但任何想法/输入将不胜感激。

再次更新:

从 yml 中删除扩展部分给了我这个:

behat.yml 的当前状态:

0 投票
1 回答
876 浏览

passwords - sahi 脚本中用于掩码密码的断言

我们如何在 sahi 脚本中应用断言来检查密码字段是否显示掩码值?例如,**********