RobotFramework:用JavaScript找不到元素



最近几周使用RF时,我注意到一个问题,这个问题困扰了我很长时间。我有不断的错误:

找不到带有定位器"XXX"的元素(当然这是一个模板(

对想要定位的跨度的调查显示,它下面有一些 JavaScript 代码,据我所知,它可以动态地启用它。

input bo-attr=" id="inventory-keyword" ng-attr-placeholder="{{('inventoryMode." + {true: 'KEYWORD_DEVICE_PLACEHOLDER', false: 'KEYWORD_TEMPLATE_PLACEHOLDER'}[items.currentSeen == VIEWS.装备]( |translate}}" ng-model="getCurrentFilters((.searchString" class="ng-pristine ng-valid" placeholder="Name, description...">

如何通过机器人框架?或者也许问题的根源不同?

还有其他类似的元素(sth appaers 是 JavaScript 在它下面(,除了主菜单之外,RF 看不到它们。

从您添加到 post 的Javascript代码来看,底层 Web 应用程序似乎使用了AngularJS(我可以在代码中看到ng-model(。

有时,您无法使用Selenium提供的默认方式识别AngularJS开发的网页中的元素。

您可以使用AngularJS库或ExtendedSelenium2Library,它们有新的方法来定位模型/绑定等元素。

查看以下链接以获取更多信息:

  • AngularJSLibrary
  • 扩展硒2库

最新更新