我一直在使用
SeleniumBasic
开发一个自动化工具,该工具已经工作了两年多。
该工具可导航
MS Teams Web App
并在整个晚上提供与多个聊天室的交互(使用 Classic App
并且尚未迁移到新版本)。
当我从主窗口移动后尝试切换到
iFrame
时,我收到以下错误。好像是Chrome更新到120版本后发生的。
最小代码示例:
If myChrome.IsElementPresent(FindBy.XPath("//iframe[starts-with(@id,'experience-container')]")) Then
myChrome.SwitchToFrame myChrome.FindElementByXPath("//iframe[starts-with(@id,'experience-container')]")
End If
代码没有改变,那么什么改变了,我需要做什么才能让它保留用户帐户?我从未提供过任何内容,因为我只是浏览了框架内的现有元素并允许
Teams Web App
处理所有内容。
在研究此错误时,我发现了许多关于
MASL
失败等的参考,但无法看到这是在哪里或如何发生的。在 Chrome 的更新版本中,Chrome 本身处理 Teams Web App
的所有操作的方式存在很大差异,现在能够检测机器人何时点击某物而不是用户点击某物。
解决此问题的唯一方法是强制机器人打开我尝试使用的 Teams 任何部分(例如日历)的 URL,然后从那里继续。
不幸的是,这有点笨拙,但它比必须尝试开发某种让 MASL 与
VBA/SeleniumBasic
一起工作的方法要好(我很乐意接受一个能够解决这一更深层次需求的方法的答案 - 必须是 Excel VBA
,使用 SeleniumBasic
- 但目前,这是有效的。)