c# - WebDriver.SwitchTo().Window() 和 WebDriver.SwitchTo().Frame() 有什么区别
问题描述
几天前,我需要让我的WebDriver(在这种情况下为 Chromedriver)在浏览器上的 2 个选项卡之间切换(其中一个已通过单击链接自动打开)。
我能够使用以下几行(C#)实现一个解决方案
var tabs = new List<String>(Driver.WindowHandles);
//Switches to the first tab
Driver.SwitchTo().Window(tabs[0]);
然而,我最近遇到了一些使用框架和警报的实现,这让我很困惑。
该文档对我没有太大帮助,因为我仍然无法找出每个用例。
您能否告诉我Frame和Window之间的区别是什么(性能、可靠性、跨平台......)?
解决方案
框架 :
是HTML中的标签。但是 HTML5 不支持该标签。
< frame > 标签定义了一个特定的窗口(frame)<frameset>
通常,您一定在DOM中看到过iframe。它基本上是 HTML 页面的一部分。
此外,如果您想与框架内的任何元素进行交互,则必须切换到框架。
如何:
SwitchTo().Frame(int frameIndex)
: 使用索引
SwitchTo().Frame(IWebElement frameElement)
:使用之前定位的 OpenQA.Selenium.IWebElement 选择一个框架。
SwitchTo().Frame(string frameName)
:按名称选择框架。
窗户:
当您单击任何链接并打开一个新选项卡或一个新窗口本身打开时,这就是 Selenium 中的一个窗口。
如何:您已经在帖子中提到了这一点。
希望这会有所帮助。
推荐阅读
- r - 为什么在循环日期时出现错误?
- sql - 应用分区后的派生列
- python - 在均衡块之间均匀拆分数据
- r - 在 r 中使用 scale_linetype_manual 错误地显示名称
- jdbc - 多个线程可以共享同一个数据库连接来同时执行多个prepareStatement吗?
- javascript - 无法生成 Prisma 客户端,outputDir.endsWith 不是函数
- javascript - 在 React 中返回 undefined 的 Fetch 方法
- python - 在嵌套的“try”语句中,哪个“except”具有优先权?
- sql - 按“类型”列从表中获取数据时出现 SQL 错误
- jquery - 用淡入淡出替换 attr 链接 - jQuery