【问题标题】:C#: Selenium - Element is not a frame element : FRAMESETC#:Selenium - 元素不是框架元素:FRAMESET
【发布时间】:2016-08-27 14:07:57
【问题描述】:

我正在尝试使用 selenium 访问并填充一些 EDIT,但出现错误...

我需要进入框架集。

HTML:

<iframe src="NIB_MainFrame.asp" name="Principal" style="height:100%;width:100%;border:0;padding:0;border:0;margin:0;display:block;overflow-y:hidden" __idm_frm__="467"></iframe>
<frameset id="frmSet" rows="55,0,*,24" border="0" framespacing="0" frameborder="no">
    <frame noresize="noresize" scrolling="no" name="Header" src="NIB_Header.asp" __idm_frm__="472">
    <frame noresize="noresize" scrolling="no" name="Menu" src="Blank.htm" __idm_frm__="473">
    <frame noresize="noresize" scrolling="auto" name="Corpo" src="NIB_Pre_Bridge.asp?txtAgencia=4346&amp;txtConta=014543708" __idm_frm__="474">
    <frame noresize="noresize" scrolling="no" name="Rodape" src="NIB_Rodape.asp" __idm_frm__="475">
</frameset>
</iframe>

C#

driver.SwitchTo().Frame(0);
IWebElement detailFrame = driver.FindElement(By.XPath("//*[@id='frmSet']"));
driver.SwitchTo().Frame(detailFrame);

错误:

OpenQA.Selenium.NoSuchFrameException 未处理 H结果=-2146233088 Message=Element 不是框架元素:FRAMESET 来源=WebDriver

【问题讨论】:

    标签: c# selenium


    【解决方案1】:

    你应该试试下面

    driver.SwitchTo().Frame("Principal");
    driver.SwitchTo().Frame("Header");
    

    无需切换frameSet。可以直接切换到Header框架

    【讨论】:

      【解决方案2】:

      您应该尝试以下更改,它应该可以工作。改变

      IWebElement detailFrame = driver.FindElement(By.XPath("//*[@id='frmSet']"));
      

      IWebElement detailFrame = driver.FindElement(By.XPath(".//frameset[@id='frmSet']"));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-20
        相关资源
        最近更新 更多