问题标签 [saucelabs]
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.
c# - 在考虑性能的情况下使用 SauceLabs 时应该如何管理 RemoteWebDriver 对象?
我之前使用 WebDriver 的经验是,由于产生新浏览器的开销,并且如果您的网站在登录之后,必须为您想要运行的每个测试记录日志,因此尝试最小化 WebDriver 对象的创建始终是最佳实践。
但是对于 SauceLabs,由于他们使用 DesiredCapabilities 对象来设置测试(作业)名称之类的东西,感觉命名测试的唯一方法是为每个测试创建一个新的 RemoteWebDriver高性能。
http - 密码中带有“@”的 HTTP 基本身份验证 URL
我正在尝试使用 Sauce Labs 为我们的登台服务器设置一些硒测试。它在基本的 http auth 后面,所以理论上我可以将 selenium URL 设置为http://user:password@www.stagesite.com
. 但是,密码中包含一个“@”,导致您可以想象的各种问题。我尝试用反斜杠转义它,但据我所知,这并没有起到任何作用。
所以,
是否有另一种使用 selenium 进行 http 身份验证的方法,即不通过 URL。或者,
有没有办法使用基于 URL 的身份验证,但以某种方式告诉浏览器“@”是密码的一部分?
node.js - Selenium WebDriver:在 IE11 和 IE10 中的 dragAndDrop 方法失败
我们一直在使用 SauceLabs 进行夜间 Jenkins CI 测试。我们已经在 Windows 8 下的 Firefox 24 中运行测试,没有任何问题。现在我们想要扩展测试并在更多平台和浏览器上运行它们。我们的目标是在 Windows 和 OSX 以及 IE11、10 和 9 下的最新 Firefox 和 Chrome 浏览器中运行测试。
测试是使用 webdriver/selenium2 的 node.js 客户端编写的https://github.com/admc/wd
我现在遇到的问题是让我们的 dragAndDrop 方法在 IE11 和 IE10 中工作。它在最新的 Firefox 和 Chrome 以及 IE9 中运行良好。
编码:
网站上的拖放脚本适用于 IE11 和 IE10,只是我们没有对其进行测试。它既是图像裁剪工具,又是使用拖放功能的输入滑块。我们认为在 IE 浏览器中脚本最有可能被破坏,因此让测试正常工作会很好。
当我在运行测试时控制 SauceLabs 中的浏览器时,有时单击页面主体实际上会帮助 dragAndDrop 方法工作。这几乎是我现在唯一的线索。我尝试使用 Seleniumsclick()
方法来模拟它,甚至在 JavaScript 中执行它。
但没有任何运气。我不知道 Selenium 中是否存在错误或问题所在。我花在谷歌上的时间让我一点也不聪明。任何帮助将不胜感激。
更新
到目前为止,我已经尝试document.body.focus()
按照建议将焦点放在身体上。我尝试使用不同的目标来模拟 JavaScript 鼠标点击和原生 WebDriver 点击。试图复制我在 SauceLabs 中控制 VM 时发生的事情。没有任何效果,我什至不确定它是否可以解决问题。
我还应该澄清这不是页面上的第一个操作。初始导航后,填充了两个输入字段,然后测试等待 AJAX 调用完成。然后,当可以找到适当的元素时,运行此方法。
angularjs - 在 Travis 上的 Protractor 在 Sauce Labs 上运行 e2e 测试
所以我有我的开源项目(https://github.com/ahmednuaman/radian ),我有一些使用Protractor在本地运行良好的 e2e 测试。
我已经按照Sauce Labs 文档进行了相应的设置.travis.yml
。测试运行到 Protractor 尝试连接到 Sauce Labs 上的 selenium 服务器时,这是错误的简要快照:
这是完整的工作日志:https ://travis-ci.org/ahmednuaman/radian/jobs/16250460
所以接下来我做的就是尝试在本地进行模拟。我阅读了Sauce Labs Connect 文档并最终在我的终端中运行了它:
一切开始都很好,与 Travis 上的完全相同,但是当我运行我的grunt e2e
任务(在更新protractor.conf.coffee
以匹配本地的 Travis 配置之后)并收到与 Travis 相同的错误时,这是一个快照:
我有一个谷歌,但我找不到其他人有这个问题。那么,这是我的配置吗?这是量角器/网络驱动程序问题吗?愿意对此有所了解吗?
selenium - Selenium 在 Saucelabs 中测试超时,但在 Jenkins 中显示为通过。当 Saucelabs 中的测试超时时,如何将作业显示为失败?
我通过在 Jenkins 中创建作业在 Saucelabs 上运行 Selenium 测试。由于网络问题或身份验证挑战,Saucelabs 上的一些测试超时。Jenkins 中的作业结果显示为成功通过。如何在 Jenkins 工作中显示错误?有没有办法在测试超时时使工作失败?在此先感谢您的帮助。
angularjs - 使用酱汁和量角器测试 Internet Explorer 和 safari
我有以下测试,当我使用 firefox 和 chrome 在本地和酱汁(至少大部分时间)上运行它们时,它们运行良好。
但是当我启动 Internet Explorer 或 safari 时,我会遇到各种错误,而手动测试时页面工作正常。对于 IE,我得到:
消息:UnknownError:JavaScript 错误(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:97 毫秒构建信息:版本:'2.30.0',修订:'dc1ef9c',时间:'2013-02-19 00:15:27' 系统信息:os.name:'Windows Server 2008 R2',os.arch:'x86',os.version:'6.1',java.version:'1.6.0_35' 会话 ID:42b30348- 8598-4edb-923e-a7019ced6eb0 驱动程序信息:org.openqa.selenium.ie.InternetExplorerDriver 功能 [{platform=WINDOWS, elementScrollBehavior=0, javascriptEnabled=true, enablePersistentHover=true, ignoreZoomSetting=false, browserName=internet explorer, enableElementCacheCleanup=true , unexpectedAlertBehaviour=dismiss, version=10, cssSelectorsEnabled=true, ignoreProtectedModeSettings=false,requireWindowFocus=false,allowAsynchronousJavaScript=false,handlesAlerts=true,initialBrowserUrl=,nativeEvents=true,takeScreenshot=true}]
错误:等待量角器与页面同步时出错:{"stack":"TypeError: Unable to get property 'get' of undefined or null reference\n at Anonymous function (Unknown script code:25:5)\n at匿名函数(未知脚本代码:21:14)\n 在匿名函数(未知脚本代码:21:2)","description":"无法获取未定义或空引用的属性 'get'","number": -2146823281}
对于 Safari:
UnknownError:检测到页面卸载事件;脚本执行不适用于页面加载。(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:384 毫秒构建信息:版本:'2.33.0',修订:'4e90c97',时间:'2013-05-22 15:32:38'系统信息:os.name:'Windows Server 2008 R2',os.arch:'x86',os.version:'6.1',java.version:'1.6.0_35' 会话 ID:空驱动程序信息:org.openqa。 selenium.safari.SafariDriver 功能 [{platform=WINDOWS, javascriptEnabled=true, cssSelectorsEnabled=true, secureSsl=true, browserName=safari, takeScreenshot=true, version=5.1.7}]
我对原因感到困惑。我尝试了更简单的测试,结果相同,我尝试了本地和远程 url,我尝试了各种延迟,比如waitForAngular
,wait
和ptor ignoreAsynch = true
. 它们都不会导致预期的结果。有什么建议么?
我的量角器配置文件:
虽然这似乎无关紧要,但我使用 grunt-protractor runner 来顺序运行多个实例。
javascript - 如何在 SauceLabs 中使用 selenium-webdriver 包?
SauceLabs 提供了如何使用 WD 节点包编写远程测试的示例。我更喜欢 selenium-webdriver 包。有什么方法可以远程使用它吗?
javascript - WebDriver / Sauce Labs / Chai / chai-as-promise 文档?
我有一个与 Sauce Labs、WebDriver 一起使用的场景测试设置,我包括 chai 和 chai-as-promise 库。我一直在从示例中提取点点滴滴,并且已经达到:
但我不确定从这里去哪里。https://github.com/admc/wd上的自述文件对这些概念有很好的概述和描述。我可以梳理像https://github.com/admc/wd/blob/master/lib/commands.js这样的源文件来获得一些想法。但我真正需要的是一些包含所有可用功能列表的文档。一些做常见测试的教程会很好。
本质上,是否有任何有用的资源可以让我去这里?
谢谢。
编辑:
例如,一些简单的事情,检查 dom 中列表的长度:
给了我错误:
AssertionError: expected { Object (value, browser) } to have a property 'length'
我在这里想念什么?
java - 超类中的 TestNG 注解
我在使用 TestNG 注释时遇到了一些问题,而且我在 stackoverflow 或 testng 文档中都没有找到好的答案。我想要做的是将 testng 侦听器以及 testng.xml 文件中的参数添加到“测试基础”超类。所有 testng 测试都将继承超类。这将减轻 testng 测试类文件中的大量代码冗余。但是当我在超类中有@Listeners 和@Parameters 注释,而不是包含@Test 方法的类时,注释不起作用。换句话说,侦听器似乎没有“看到”测试,并且来自 testng.xml 的参数在运行时不会被拉入超类。
我的“测试库”(超类)有一个来自Sauce Labs api的 testng 侦听器,它将在远程执行期间侦听测试并将测试的成功/失败更新到 Sauce Labs。它还使用@Parameters 注释从当前测试运行的 testng.xml 中提取参数。
TestBase 超类:
这是一个继承 TestBase 的示例测试类。
这是我的 testng.xml 的模型。
那么,有没有办法让 TestNG 的 @Listeners 和 @Parameters 在不包含 @Test 的超类上工作?提前致谢!对于任何不良的编码习惯,我们深表歉意;所有这些代码都是即时模拟的。
selenium - 在 Sauce Labs 中处理超时
我的 Web 驱动程序代码在浏览器的本地实例上运行时可以正常工作。我的代码与浏览器交互,但有一段时间它通过终端启动一些后台任务,以便为剩余的测试设置数据。这是一个端到端的测试,它需要按此顺序执行,让浏览器闲置一小段时间,通常在 5 分钟以下。后台任务完成后,浏览器将再次进行交互。
不幸的是,当我从 Sauce Labs 远程运行我的休息时,当运行后台任务时,Sauce Labs 发现浏览器处于非活动状态超过 90 秒并假设存在问题。即使测试从未失败,这也会导致失败。我似乎在文档中找不到有关如何增加空闲超时的任何内容。有没有办法做到这一点?