【发布时间】:2017-12-15 12:09:05
【问题描述】:
所以当我单击一个按钮并尝试切换到这个 iframe 时,我会弹出一个 iframe。我面临的挑战是 iframe 的 ID 根据会话是动态的,因此我需要根据 id 的前缀切换到 iframe,无论如何都是相同的。
public void StartMTATransaction(string date)
{
Transaction.Clear();
Transaction.SendKeys("MTA");
Go.Click();
ObjectRepository.Driver.SwitchTo().Frame(ObjectRepository.driver.FindElement(By.XPath("//iframe[starts-with(@id,'dctPopup_dctPopupWindow') and contains(@name,'dctPopup_dctPopupWindow')]")));
TransactionDate.SendKeys(date);
ObjectRepository.driver.SwitchTo().DefaultContent();
}
当我尝试运行代码时,第 2 行出现以下错误:
System.NullReferenceException: '对象引用未设置为对象的实例。'
我试图切换到的元素:
<iframe id="dctPopup_dctPopupWindow5D21CAC8BEAC0794DFC40B9D0081D49E" style="WIDTH: 100%; HEIGHT: 100%; BACKGROUND-COLOR: transparent" name="dctPopup_dctPopupWindow5D21CAC8BEAC0794DFC40B9D0081D49E" frameborder="0" width="100%" height="100%"></iframe>
【问题讨论】:
-
你能显示HTML吗?
标签: c# selenium iframe xpath selenium-webdriver