问题标签 [selenium]

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

servlets - 如何为 selenium 核心创建 /postResults servlet

我查看了文档,它所说的只是创建一个 servlet……用什么?

我需要为此 servlet 使用代码吗?

它是否只需要为空白并具有 postResults 的名称?

是否有为此提供的 ant 脚本?

我在 google 或 selenium 的网站上找不到任何可以让我参与其中的内容。

谢谢

更新:我找到了以下示例

但是,我似乎在我的硒罐中的任何地方都找不到这个 Class 文件。我有 RC 和常规核心下载,但没有骰子。我从哪里得到这个 jar 文件?

0 投票
2 回答
2076 浏览

ruby - 使用 Ruby 的 Test::Unit for Selenium 进行数据驱动测试

我对 Ruby 和 Selenium 都很陌生,我只是想找出构建测试工具的最佳方法。我正在使用 Rake、Rake::TestTask 和 Test::Unit 来驱动它。我有一个套件,我想为每个浏览器/操作系统组合运行一次。我不知道如何参数化我的测试,我已经习惯了 Junit4 和 TestNG。

我真的很希望能够在我的套件或案例的设置中阅读 BROWSER=。有什么建议或者在 Ruby 中是否有更好的方法来做到这一点?

0 投票
3 回答
5126 浏览

.net - 集成(Selenium)测试后回滚数据库

有没有人对从 Selenium 等集成测试框架中回滚数据库事务的最佳实践或首选方式有任何建议?

这是我们目前的情况:我们有一个带有许多单元测试的 .net Web 项目,这些单元测试在我们的单元测试环境中运行良好 - 每个测试都继承一个父类,它在 [SetUp] 中打开一个事务,并在 [SetUp] 中回滚事务[拆解]。每次测试后,我们的单元测试数据库都会恢复到原始状态。

但是,一旦我们进入集成环境,情况就会发生变化。我们的持续集成服务器会自动编译我们的提交并将它们推送到测试服务器,以便服务器始终运行在最新的代码上。我们还设置了一个 Selenium 实例来自动化用户与站点的交互。selenium 测试基本上与现有的 Selenium 服务器通信,并告诉服务器诸如“启动浏览器并转到http://testsite/TestPage.aspx - 将文本 'abc' 输入带有 id 'def' 的表单字段 - 断言新页面包含文本“xyz””

每个测试都以与我们的普通单元测试类似的方式运行,但有一个重要的例外:Selenium 所做的任何更改都是在完全不同的线程/应用程序中完成的,因此我们不能(我*认为我们不能,至少)在测试拆解中回滚它们。

我们还没有为此找到一个好的解决方案。现在我们正在使用 SqlCommand 执行 sql 语句来备份数据库,然后在测试结束时,我们将数据库设置为单用户,删除当前数据库并恢复旧副本 - 这不太理想,因为这有效地杀死了附加到数据库的应用程序,并要求我们再次重新初始化应用程序。

这是以前解决过的问题吗?任何建议都会很棒。

谢谢!

0 投票
2 回答
449 浏览

testing - 点击几个链接部分动态生成

我是 Selenium 的新手,测试很重要。我正在尝试捕获部分动态生成的超链接元素的 id。当我在 selenium 中单击时,单击动作记录如下,粗体部分是动态生成的,我的页面上有很多,并且可能因站点而异(我正在测试 cms)。我想捕获并单击任何一个。这就是我从那时起尝试做的事情:

商店属性 | //button@class onclick="setLocation(javascript{baseUrlSelection()}['/checkout/cart/add/uenc/(a-zA-Z0-9) /product/(0-9) ]'')" | 我的身份


回声 | ${myid} |


点击并等待 | ${myid[0]}

它不起作用当点击动作记录在 selenium 中时,我的链接看起来像这样:buton[@onclick="setLocation(' http ://localhost/mydomaine/index.php/checkout/cart/add/uenc/aHR0cDovL2xvY2FsaG9zdC9NYWdlbnRvSGls

YWlyZURlbW9WMi9tYWdlbnRvZGVtb0hpbGFpcmVWMi9pbmRleC5waHAvY2F0ZWdvcmllMS5odG1sP19fX1NJRD1V /product/ 1 /')">请帮助。

0 投票
2 回答
1998 浏览

selenium - 减小 selenium 框架的大小

我是否要减小 selenium 框架的大小,以增加我正在测试的网站的框架?

0 投票
5 回答
923 浏览

selenium - 您使用哪些属性进行 Selenium 测试?

我们可以通过以下几种方式搜索网站上的特定字段:基于 css、名称、id、结构,甚至是找到的任何文本。您决定使用哪种方式?

什么是最好的做法?

编辑:我从开发人员的角度问:如何编写代码,通过一种方法更容易使用 Selenium 进行测试(即:能够通过名称搜索所有这些代码)

0 投票
4 回答
6710 浏览

ajax - Assert that no values are selected from dropdown list with selenium IDE

I have this scenario: simple HTML form that is being processed with Ajax with clear (reset that form) button. I want to test clear function, hence the question: What is the right way to check that no values are selected from drop-down list with Selenium IDE?

I've tried assertSelectedValue command but didn't find a way to specify the unselected value. So I switched to assertValue command which works smooth with input fields and checkboxes. But is it right to use it for dropdown lists? Even though test passes with specified dropdown list id as a target and blank field as a value, I still can't get rid of a feeling something is wrong.

Any clarification is much appreciated.

0 投票
2 回答
1656 浏览

asp.net-mvc - 如何对控制器方法的 HandleError 属性的行为进行单元测试?

当发生意外错误时,我正在尝试验证我的 ASP.Net MVC 应用程序的行为。具体来说,我正在尝试验证用户是否被定向到我为我的应用程序定义的错误页面。我遇到的问题是我无法按预期验证控制器方法的行为。

对于我的正常行为测试,我创建了一个模拟业务规则对象并将其传递给我的控制器,然后从我要测试的控制器方法中验证 ViewResult。当事情按预期工作时,这对我的目的来说很好。但是,当我从业务规则方法抛出异常时,异常是通过控制器方法结果进行的,而不是由控制器处理(控制器方法具有“HandleError”属性),以便为我的错误页面提供适当的 ViewResult被退回。

有没有办法以这种方式验证 HandleError 属性的行为?还是我完全错了?我意识到我可以使用 Selenium(会访问实际服务器的浏览器内测试)来验证实际浏览器中的行为,但是模拟这些测试让我可以更快地完成这项工作,而且开销要少得多......

示例测试代码:

我很感激任何关于我可能做错了什么的建议,或者我是否只是从完全错误的方向来解决这个问题。我假设在控制器方法级别进行测试是合适的方式,因为这是应用 HandleError 属性的地方。(如果我确实需要在应用程序级别进行测试,是否可以通过类似的方式进行测试实例化对象而不是使用像 Selenium 这样的东西?)

更新 我得出的结论是,我不应该在每个控制器操作上测试与 HandleError 属性相关的功能。我实际上并不关心它的作用,我只是想确保错误得到处理(从我的测试角度来看,它的自定义代码或 MVC 库是否没有区别,这是我想要验证的功能)。

我最终所做的是将我的控制器操作包装在 try/catch 块中,以强制错误视图作为方法的结果返回(而不是 ErrorHandler 属性在离开方法时捕获错误)。这样我就可以在我的单元测试中断言错误已通过适当的反馈得到正确处理。我对这给我的控制器方法增加的额外长度不太满意,但它确实让我向用户提供了友好的、具体的错误消息(我正在使用扩展方法来显示反馈并执行日志记录)。(所以肯定有 try/catch 方法的优点和缺点..)

我不是 100% 肯定这是最干净的方法,但它实现了我的目标,即能够验证错误是否通过控制器单元测试(快速)而不是必须在浏览器中执行测试(慢) . 所以基本上它现在已经足够好了,直到我能找到一个更清洁的解决方案。如果有人遇到类似问题并找到更好的解决方案,我决定提供赏金。

0 投票
1 回答
1024 浏览

apache-flex - Selenium Flex API 问题

嗨,我正在使用 selenium flex API 集成 selenium RC。在启动 Flex 应用程序后,selenium 无法识别登录页面上模块框内的字段。

错误跟踪:

com.thoughtworks.selenium.SeleniumException:错误:错误:在应用程序中找不到元素“logonId”

你能提供一个解决方案吗?

0 投票
2 回答
993 浏览

selenium - bsd 中的 selenium-rc

我试图在 bsd 中运行 selenium-rc 并得到以下错误

将 firefox-bin 添加到我的路径没有帮助。第二个选项是什么?(“或像这样明确指定 Firefox 的路径”)

有什么解决办法吗?