1.- La página a la cual estoy recorriendo del DOM con C# tiene varios IFRAME el código HML del sitio Web
2.- Dentro del código de C# necesitaba leer el contenido que se encontraba dentro del IFRAME con el id=A4, Dentro de Iframe.
3.- Dentro del IFRAME con el id A4 este contienes varios Select anidados con Ajax donde, como señale anteriormente tengo problemas para leer.
4.- El problema es el siguiente tratao de leer los select que se encuentra dentro del iframe A4 lo cual lo realizo en le WinForm pero cuando trato de adaptar el código al WebForm me aparece el siguiente problema
Mensaje de error del compilador: CS0104: 'HtmlElement' es una referencia ambigua entre 'System.Web.UI.HtmlControls.HtmlElement' y 'System.Windows.Forms.HtmlElement'
El código HTML es el siguiente :
Código:
<body>
<div id="contFrameUno" class="frameWrapper" style="margin: 0px auto; width: 100%;">
<div id="contFrameDos" class="frameWrapper" style="margin: 0px auto; width: 100%;">
<iframe id="a1" width="100%" height="103px" frameborder="0" style="vertical-align:top;" scrolling="no" src="top.php" name="a1">
<br>
<iframe id="a3" width="16%" height="730px" frameborder="0" style="vertical-align:top; margin-left: 28px;" scrolling="no" src="left.php" name="a3">
<iframe id="a4" width="78%" height="770px" frameborder="0" style="vertical-align:top;" scrolling="auto" src="moduloautoconsulta.php" name="a4">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="200" border="1">
<tr>
<td>
<label for="Competencia"></label>
<select name="Competencia" id="Competencia">
<option value="A1">Competencia1</option>
<option value="A2">Competencia2</option>
<option value="A3">Competencia3</option>
</select>
</td>
</tr>
<tr>
<td><select name="Tribunal" id="Tribunal">
<option value="TR1">Tribunal 1</option>
<option value="TR2">Tribunal 2</option>
<option value="TR2">Tribunal 3</option>
</select></td>
</tr>
<tr>
<td><select name="Corte" id="Corte">
<option value="Corte1">Corte 1</option>
<option value="Corte2">Corte 3</option>
<option value="Corte3">Corte 3</option>
</select></td>
</tr>
<tr>
<td><select name="Tipo" id="Tipo">
<option value="Tipo1">Tipo 1</option>
<option value="Tipo2">Tipo 2</option>
<option value="Tipo4">Tipo 3</option>
</select></td>
</tr>
<tr>
<td><select name="SubTipo" id="SubTipo">
<option value="SubT1">Sub Tipo 1</option>
<option value="SubT2">Sub Tipo 2</option>
<option value="SubT3">Sub Tipo 3</option>
</select></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
</iframe>
<br>
<iframe id="a6" width="100%" height="83px" frameborder="0" style="vertical-align:bottom;" scrolling="no" src="footer.php" name="a6">
</div>
</div>
El Codigo de C# es el siguiente
Código:
private void GetLinksFromFrames()
{
try
{
WebBrowser.Navigate("https://misitio.com/frameInv.php");
string frameUrl;
if (!(this.webPoderJudicial.Document == null))
{
// WebCargado = true;
HtmlWindow currentWindow = this.WebBrowser.Document.Window;
if (currentWindow.Frames.Count > 0)
{
foreach (HtmlWindow frame in currentWindow.Frames)
{
frameUrl = frame.Url.ToString();
if (frameUrl == "https:///misitio.com/moduloautoconsulta.php")
{
HtmlElementCollection select = frame.Document.GetElementsByTagName("select");
foreach (HtmlElement el in select)
{
if (el.Name == "competencia")
{
Application.DoEvents();
foreach (HtmlElement ele in el.GetElementsByTagName("option"))
{
cmbCompetencia.Items.Add(ele.InnerText);
}
}
}
}
}
}
}
}
catch (Exception ex) {
}
}