元素在页面上可见,但显示为null

时间:2012-09-25 06:40:58

标签: c# javascript jquery selenium webdriver

无法识别页面中的元素。它给出null。我想识别iframe(文本框)中的元素。我使用selenium webdriver来点击元素,但它无法识别元素< / p>

1)我的HTML代码如下所示

      <html>
        <head>
         <body>
         <iframe id="iframeOne">                  
             </iframe>
         </body>    
          </head>

              </html>     

2。我使用javascript来识别文档框,例如document.getElementById('textbox') 但它返回null。

3.我甚至尝试使用selenium webdriver

  IWebElement ClickElement = Wait.Until((d) => webDriver.FindElement(By.Id(parameter1))); It gives object reference error
            ClickElement.Click();

2 个答案:

答案 0 :(得分:3)

您不能将html放在iframe标记内。它是在curent页面内加载另一个页面。并且您的输入标记应该包含控件的类型。并检查HTML验证错误。

答案 1 :(得分:2)

如果且仅当浏览器 支持iframe标记时,您将 iframe标记中的html代码加载并显示。所以可能永远不会,除非你使用旧的Netscape导航器或IE 4。

src属性添加到指向要加载的网址的iframe。然后你可以通过这种方式访问​​元素:

var frame = document.getElementById('iframeOne');
var frameDocument = frame.contentDocument;
var element = frameDocument.getElementById('xxxx');

但有一点需要考虑:当iframe的src是跨域时访问contentDocument可能无法正常工作。