【问题标题】:Can we use Selenium webdriver for automating MS CRM 2015 based application?我们可以使用 Selenium webdriver 来自动化基于 MS CRM 2015 的应用程序吗?
【发布时间】:2016-01-11 05:07:51
【问题描述】:

我们可以使用 Selenium webdriver 来自动化基于 MS CRM 2015 的应用程序吗?如果不能,是否有任何具体原因。

【问题讨论】:

  • 您究竟想要自动化什么?
  • 我想通过 selenium 自动化我的基于 MS CRM 2015 的 Web 应用程序。例如,我必须自动化联系和潜在客户模块。
  • 您要自动化哪些操作?

标签: selenium-webdriver dynamics-crm


【解决方案1】:

如果基于 HTML,Selenium 可以自动化网页的任何部分。因此,如果您想检查它,请打开 CRM Web 应用程序,打开浏览器控制台并确认您的自动化测试所需的所有元素是否都基于 HTML。

Selenium 无法访问网页的非 HTML 组件。您可能想要使用基于图像的测试工具,例如 Sikuli。

【讨论】:

  • 您好感谢您的回复,MS Dynamics CRM 的实体表单元素通过 Xrm.Page 对象模型公开。我不确定它是否是非 HTML 组件。
  • 例如文本输入字段的 HTML 显示为
    它看起来像 HTML。
  • 这当然是 HTML...尝试自动化一个流程作为概念证明,然后继续。有没有浏览器限制。喜欢的应用程序只能在 IE 中打开?
  • 谢谢。我目前正在研究 POC 部分,浏览器没有这样的限制,但是最适合 IE。
  • IE 可能会导致 Selenium 出现不稳定问题。这是我的经验。我曾开发过旧版本的 CRM 应用程序,我们能够将其自动化。但与普通应用程序相比,它的稳定性较差。无论如何,编码愉快!
【解决方案2】:

由于最近有人问了一个重复的问题 (Does Selenium suports CRM applications),我将在此提供我的答案。

我已经使用 Dynamics CRM 成功实现了 selenium webdriver 自动化。 CRM 与其他网站的主要区别在于:

  1. 使用 iframe。确保切换到包含您要处理的元素的正确框架,例如driver.switchTo().frame(the_frame_id),或者更好的是,使用 ExpectedConditions.frameToBeAvailableAndSwitchToIt(by) 隐式等待帧
  2. 正如其他人所说,等待加载时间。但我发现 CRM 在加载时实际上会显示漂亮的旋转“正在加载...”消息,而不是硬睡眠或显式等待。因此,在执行进一步操作之前等待消息消失,我使用了ExpectedConditions.invisibilityOfElementLocated(locator_of_loading_dialog);或者对于一些更棘手的可见性由 display 以外的其他属性值驱动的情况,请尝试 ExpectedConditions.attributeContains(locator, attribute, value) - 例如 ExpectedConditions.attributeContains(By.id("some_id"), "style", "visibility: hidden")

除此之外,它只是另一个网站。

【讨论】:

    【解决方案3】:

    虽然CRM 成为SPA 会做很多工作,但你可以摆脱困境。这是我对类似问题的回答,为了避免复制,请在此处查看Selenium Automation testing in crm 2015

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      • 2020-07-02
      • 1970-01-01
      • 2021-06-06
      • 2013-11-18
      • 2017-05-30
      • 2021-12-31
      相关资源
      最近更新 更多