c# - 切换到默认框架会引发 NullReferenceException
问题描述
我正在使用 C# 中的 selenium 和 Nunit 进行一些 Web 测试。我目前在使用 iframe 时遇到一些问题。在我的一种方法中,我想返回默认框架,但使用 driver.SwitchTo().DefaultContent(); 以某种方式抛出 NullReferenceException 。
我也尝试切换到第 0 帧并切换到父帧,同样的问题。
这是实际的方法:
public void OpenInfoTab(int timeout = 10)
{
while (true)
{
if (timeout-- < 0) throw new TimeoutException("Infotab Does not open");
Console.WriteLine(timeout);
element.Click(InfoTab);
System.Threading.Thread.Sleep(100);
try
{
element.SwitchTo(InfoFrame);
element.IsDisplayed(Dip1);
break;
}
catch (AssertionException)
{
driver.SwitchTo().DefaultContent();
}
}
}
Iframe 是一个在您单击信息选项卡时打开的窗口,它始终存在,但在单击按钮之前为空。元素.IsDisplayed(Dip1); 如果预期元素在切换后不在 iframe 内,则会抛出异常。如果发生这种情况,我想退出框架并重试。
但由于某种原因,我无法再次切换,因为我的外框应该是空的。
解决方案
好的,我发现了问题。我是个大白痴,从未在对象的初始化中继承驱动程序。
推荐阅读
- css - CSS:如何选择特定的兄弟元素
- angular - 如何在Angular2中发布图像?
- php - Social Rabbit - Wordpress 社交媒体插件设置认证
- simulation - 是什么导致 RiverWare 规则无序执行?
- android - 我已经有 3 周的问题了。我无法构建我的项目,因为这个问题
- wordpress - 如何单击左侧的标题并在右侧显示 Wordpress 的详细信息
- angular - 如何在 Angular 5 中显示带有选项的测验问题并保存选定的选项?
- azure - Azure Functions Core Tools 使用默认函数抛出错误:找不到 ../azurefunctions/functions.js
- gcc - 如何将 zstd 库静态链接到我的动态库?
- python - 将 ISO 8601 时间格式转换为 UNIX 时间戳(纪元)并再次返回而不会丢失小数秒?