使用 c# 实现 Flash 自动化

Posted

技术标签:

【中文标题】使用 c# 实现 Flash 自动化【英文标题】:Flash automation with c# 【发布时间】:2017-11-13 17:22:02 【问题描述】:

我想在 Flash 网页上进行测试自动化。我在源代码中只有一些Object 标签,仅此而已。我无法使用xpathclass selector 在任何地方导航。

所以我有那个代码:

ChromeOptions options = new ChromeOptions();
IWebDriver driver = new ChromeDriver(options);
driver.Manage().Window.Maximize();

driver.Url = url;

var body = driver.FindElement(By.XPath(".//body"));

Actions action = new Actions(driver);
action.MoveToElement(body, MouseXCoordinate, MouseYCoordinate).Click().Build().Perform();

我找不到更好的解决方案。我不能使用比这更好的东西吗?使用坐标做所有事情有点不舒服。

【问题讨论】:

【参考方案1】:

您将无法使用 Selenium Webdriver 选择 Flash 对象中的任何元素。如果您有 javascript 画布并且需要单击 Canvas 内的某些内容,则类似的情况。您所能做的就是将鼠标光标指向特定坐标,然后单击。

如果您想在 Flash 中查询对象,请了解 Ranorex。虽然它不是便宜的图书馆。

【讨论】:

【参考方案2】:

由于 selenium 无法实现自动化闪存的另一种替代方法是名为 http://www.sikuli.org/ 的框架/库(我意识到它不是 c#,而是免费的......至少上次我检查过)。

自从我使用 sikuli 已经有几年了,但在较高的水平上,它使用你的 UI 的图片/图像来执行匹配。所以你拍了一堆截图,使用他们的脚本语言(我相信它实际上是 python)并以这种方式创建自动化脚本。

【讨论】:

以上是关于使用 c# 实现 Flash 自动化的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 Flash 停止播放视频后自动录制视频响应

使用 c#、selenium 和 jquery 实现 IE 自动化 - 从动态表中随机获取

为啥我不能将自动实现的 getter 和 setter 与 List 一起使用? (统一,C#)

C# 自动更新程序怎么弄

Openoffice 中是不是可以实现单词自动化

C# winform 如何取得网站cookie,从而实现自动登录。