c# – 如何使用WatiN访问iframe中的控件?

我正在尝试使用C#中的WatiN访问iframe中的复选框.

文档建议使用这个:

var frame = browser.Frame(frameId);

但是,我尝试过这种格式,如下所示:

var edUsrFrame = browser.Frame(Find.ByName ("ctl00_ContentPlaceHolder1_WindowManager1359542712913"));

但是,我无法弄清楚如何访问嵌套在该帧上的元素(复选框).

iframe使用动态名称的问题是什么?我试过直接访问该复选框,但再次没有成功.

谢谢.

最佳答案 当您想要访问框架内的项目时,就像对待“顶级”浏览器一样对待框架.

要点击复选框:

var myFrame = browser.Frame(Find.bywhatever());  //Gets the frame
myFrame.CheckBox(Find.ByName("checkboxnamehere")).Click();

或者更简单:

browser.Frame(Find.Bywhatever(...)).CheckBox(Find.ByWhatever(...)).Click();

如果框架使用的是每次加载页面时都在更改的动态名称,而不是按名称查找,则可以通过正则表达式,索引或通过简洁地标识该框架的内容进行查找.底线:如果名称将页面加载更改为页面加载,则无法使用名称.

点赞