首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从技术角度来看,Selenium如何单击网页上的元素?

从技术角度来看,Selenium如何单击网页上的元素?

提问于 2018-02-02 08:16:30
回答 2关注 0查看 660

如果有人知道解决更大问题的替代方法,就会提供上下文。

问题语境

我正在为使用Web组件的Web应用程序开发一个测试自动化框架。这在InternetExplorer中测试时出现了问题,因为InternetExplorer本机不支持Web组件;相反,使用了一个填充来提供此功能。

这的一个主要后果是,许多硒将不能像预期的那样起作用。它无法像在Firefox和Chrome中那样“看到”InternetExplorer中的影子DOM。

另一种方法是编写一个测试框架,它为通过JavaScript访问元素提供了一种备用机制--这允许元素通过多边形定位。

当前实现检查WebDriver正在使用,或者使用方法的原始Selenium实现(在Chrome或Firefox中),或者使用我们自己的替代实现(在InternetExplorer中)。

这意味着我们希望我们的实现尽可能接近Selenium的实现,在其核心、浏览器交互级别上。

问题

我试图复制Actions.click(WebElement onElement)(来源)的简化形式(不遵循Actions类,并假设单击是用鼠标左键而不是按住其他键(Ctrl、Shift、Alt)。

我想找到处理点击做的核心代码(特别是在Chrome,Firefox和InternetExplorer中),这样我就可以尽可能地复制它,但是我发现自己迷失在了类和接口的深坑中……

新的ClickAction(来源)被创建(稍后执行)。执行此操作包括对Mouse接口(来源)...我迷路了。我从生成JavaDoc这是由任何一个EventFiringMouse(来源)或HtmlUnitMouse(来源),但我不确定将实施哪一个。我做了一个假设(几乎没有根据)HtmlUnitMouse会被使用,这使我深入来自Gargoyle软件的HTMLUnit代码...

总之,我完全迷路了。

研究

  • 我发现我的假设是不正确的,我认为HTMLUnit是由Chrome、Firefox和InternetExplorer使用的。文件显示RemoteWebDriver(来源)由ChromeDriverFirefoxDriver,和InternetExplorerDriver引起
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档