【发布时间】:2015-07-15 10:15:53
【问题描述】:
我正在尝试编写一个自动化测试来自动化更新 google chrome 扩展程序的过程。我不知道另一种自动执行此操作的方法,所以这是我目前正在尝试做的:
打开 chrome 扩展页面(据我所知,这只是一个 html 页面,除非我遗漏了什么)。
点击“更新扩展”按钮
这是我在打开 chrome 扩展页面后所尝试的:
IwebElement UpdateButton = driver.findelement(By.Id("update-extensions-now"));
UpdateButton.Click();
由于某种原因,按钮单击未注册。我尝试了其他一些定位器,例如 CSS 路径和 Xpath,但它们也不起作用。另外,当我调试这个测试时,它通过了,所以我知道这不是我的任何定位器的问题。我(作为测试)尝试自动点击此页面上的其他元素,这是同样的问题。我根本无法处理 chrome://extensions 页面上的任何元素。
有没有人遇到过这种情况或对发生了什么有任何想法?
【问题讨论】:
-
您是否还确保您的代码选中开发者模式复选框?否则,按钮将被有效隐藏。把你导航到页面的完整代码加上 UpdateButton 部分,这将验证我的理论(或不是:-))
-
我没有打开复选框的任何代码,因为我也无法处理开发人员模式复选框。如果我手动检查它并重新启动测试,那么复选框状态实际上仍然存在(我假设它已写入某处的配置文件)。无论开发者模式复选框是否打开,我仍然无法处理存在的其他按钮,所以我知道这与更新按钮是否显示无关
-
banjaxx,正如我在之前的评论中提到的,您确实需要发布您拥有的所有代码才能真正进行 A/B 测试解决方案
-
我唯一的其他代码是加载“chrome://extensions”页面,然后等待页面加载。然后我试图找到更新按钮并单击它。我发现了这个问题。扩展页面中包含多个 iframe,因此在加载扩展页面后,我必须切换到 iframe,然后才能找到并单击按钮。感谢您的帮助
-
当然,现在很明显了。有趣的是,前几天我评论了另一篇帖子,提到了
_driver.SwitchTo().Frame(targetFrame)或_driver.SwitchTo().Window(targetWindow)。从来没有想过这里;)
标签: selenium selenium-webdriver webdriver selenium-chromedriver