问题标签 [protractor-net]

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

c# - C# Protractor - 在另一个元素中查找元素

我正在测试一个带有 HTML 的 AngularJS 应用程序,看起来像这样:

我正在尝试根据转发器 Div 文本内容查找嵌套的 Yes/No 按钮。

我可以通过以下方式找到正确的 ng-repeat 元素 -

但是我想不出一种方法来获取适当的是/否按钮..

我试过了 -

但这会返回页面上的第一个“是”按钮(而不是像我期望的那样在 ng-repeat div 内)。

  1. 为什么??
  2. 我怎样才能完成我想做的事情?
0 投票
1 回答
411 浏览

selenium-webdriver - 当元素在屏幕中不可见时,单击不起作用 Selenium

links的页面很少。links如果您向下滚动页面,则很少有可见的..

我正在使用C# - Protractor for script automation.

当我检查布尔条件时,它说显示元素。但如果我没有导航到实际页面clicklink

使用时,如果我向下滚动页面debug,则在执行命令时它可以正常工作。click如何解决此向下滚动问题?

这个语法正确吗?

谢谢

0 投票
2 回答
502 浏览

selenium - 框架中的隐式和显式等待方法

我们在项目中使用 Protractor 3.6 版本来自动化 angularJS 应用程序。我们有主 Angular 应用程序,其中许多独立的 Angular 应用程序被实现为 iframe。

也就是说,我们可以直接通过 SPA 访问这些应用程序,也可以通过我们的主集成应用程序访问这些应用程序。

当前方法:团队在隐式等待无济于事的地方使用 30 秒的隐式等待()和静态等待(可能是 60 秒)。

问题:每次我们执行测试脚本时都会看到不一致的结果,而且执行时间相当长。

解决方案:我们提出了显式等待添加到隐式等待和静态等待,这提高了一致性并减少了执行时间。

问题:在框架中同时使用所有三种等待(隐式等待、显式等待、thred.sleep)是否正确?注意:在少数导航中我们不得不使用 thread.sleep()。隐式等待和显式等待都不起作用。

0 投票
1 回答
1362 浏览

protractor - - 失败:索引超出范围。尝试访问索引处的元素:0,但只有 0 个元素与定位器 By.xpath 匹配

量角器投掷错误失败:索引超出范围。尝试访问索引处的元素:0,但只有 0 个元素与定位器 By.xpath 匹配

var eleXpath = '// [@data-qa-class="tile" and descendant:: [normalize-space(.)="Weights"]]// [@options="ctrl.grid.options"]/ [ contains(@class, "slick-frozen-rows") and not(contains(@class, "multi-header"))]// [contains(@class, "slick-pane slick-pane-bottom slick-pane- left")]// [contains(@class, "slick-row") and descendant::*[normalize-space(.)="88579YAE"]]';

var rowReferenceXpath = element.all(by.xpath(eleXpath)).get(rowIndex);

抛出错误为

  • 失败:索引超出范围。试图访问索引处的元素:0,但只有 0 个元素与定位器匹配 By.xpath("// [@data-qa-class=\"tile\" and descendant:: [normalize-space(.)= \"Weights\"]]// [@options=\"ctrl.grid.options\"]/ [contains(@class, \"slick-frozen-rows\") 而不是(contains(@class, \"多标题\"))]// [包含(@class, \"slick-pane slick-pane-bottom slick-pane-left\")]// [包含(@class, \"slick-row\" ) 和后代::*[normalize-space(.)=\"88579YAE\"]]")
0 投票
2 回答
819 浏览

protractor - 登录到我的网站量角器后无法找到下一个元素

登录后用户的此代码应发布一些问候消息。

按钮的 HTML 代码

0 投票
2 回答
2616 浏览

selenium - 量角器中的元素不可点击

我有一个上传图片的模式。当我点击上传图片时,它正在导航到本地计算机,然后选择指定的图片。导航到本地计算机后出现错误。

错误:

消息:失败:未知错误:元素在点 (736, 187) 处不可点击。其他元素将收到点击:...(会话信息:chrome=54.0.2840.99)(驱动程序信息:chromedriver=2.25.426923(0390b88869384d6eb0d5d09729679f934aab9eed),平台=Windows NT 10.0.14393 x86_64)堆栈:WebDriverError:未知错误:元素在点 (736, 187) 处不可点击。其他元素将收到点击:... (Session info: chrome=54.0.2840.99) (Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 10.0.14393 x86_64) at WebDriverError (C:\Users\ Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:27:5) 在 Object.checkLegacyResponse (C: \Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2775:27) ElementArrayFinder.applyAction_ 出错 (C:\Users\Telekha\AppData\Roaming\npm\ node_modules\protractor\built\element.js:403:27) 在 ElementArrayFinder._this.(匿名函数) [点击] (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js :101:30) 在 ElementFinder.(匿名函数) [点击] (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:740:22) 在 Object. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:40:51) 在 C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\ index.js:94:23 在新的 ManagedPromise (C: \Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1082:7) 在 controlFlowExecute (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor \node_modules\jasminewd2\index.js:80:18) 在 TaskQueue.execute_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2913:14 ) 在 TaskQueue.executeNext_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2896:21) 在 asyncRun (C:\Users\Telekha\AppData \Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2820:25)来自:任务:在对象的控制流中运行它(“在仪表板上”)。(C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:79:14)来自异步测试:套件出错。(C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:16:2) 在对象。(C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:1:1) 在 Module._compile (module.js:570:32) 在 Object.Module._extensions..js (module.js:579:10) 在 Module.load (module.js:487:32) 在 tryModuleLoad (module.js:446:12)

2 个规格,1 个失败。

和我上传图片的代码:

0 投票
3 回答
3933 浏览

angularjs - 如何在量角器的 ng-autocomplete 中选择一个元素?

通过文本传递

它无法选择自动完成中的第一个元素。

0 投票
1 回答
1192 浏览

c# - Can you use Protractor in combination with PageFactory?

Is it possible to use protractor with PageFactory/Pagobject pattern. On GitHub this question was asked before (https://github.com/bbaia/protractor-net/issues/5) and some changes were made in protractor to support the PageFactory pattern but for me it's not clear how to initialize the NgWebelements in the PageObject. At the moment I'm working with C#.

0 投票
1 回答
275 浏览

c# - 如何解决“文档在执行期间被卸载(UnexpectedJavaScriptError)”

我正在尝试更新我们的 Selenium 测试以使用最新的 Firefox。此代码片段显示了我如何初始化驱动程序。Instance是一个类成员:NgWebDriver Instance

但是,以下代码失败:

出现以下错误:文档在执行期间被卸载(UnexpectedJavaScriptError)

请注意,此特定 URL 确实重定向到另一个页面,但原始页面和重定向页面都是有角度的页面。

我已经尝试了初始化我能找到的驱动程序的所有变体,但它们都因类似的错误而失败。

任何人有任何其他的事情我可以尝试克服这个吗?

0 投票
2 回答
1279 浏览

angular - 在 Visual Studio 2015 中使用 Protractor 测试 ASP.NET Core 应用程序

我有一个基于核心模板包中的 angular2 模板的 ASP.NET Core 项目。我添加了带有 xunit 和量角器的第二个项目来对我的主应用程序运行单元测试。

两者都很好地单独工作,我错过了一件小事:

当我想运行量角器测试时,我需要手动在某处托管主项目。如果我不手动托管主项目,它就不会运行,所以所有测试都会失败,因为我的页面无法访问。

我可能需要从测试中以某种方式启动主应用程序/项目,但我不知道如何。量角器的所有示例都针对一些已经运行的主页运行,没有一个针对其他项目运行。

如何从我的测试项目启动主 ASP.NET Core 项目,以便它运行以进行测试?

奇怪的是:在我使用 Strg+F5 量角器和 ChromeDriver 启动主应用程序后,会找到应用程序的主页。但是我需要手动运行一次才能使测试正常工作...