Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
С#, пара вопросов.
#1
Собственно начал писать программу. С 0. У нас есть объект Webbrowser. Загружаю страницу, ее нужно заполнить в автоматическом режиме и кликнуть.
[SRC="c++"] webBrowser1.Document.GetElementById("username").InnerText = "1";
webBrowser1.Document.GetElementById("password").InnerText = "1";

foreach (HtmlElement input in this.webBrowser1.Document.GetElementsByTagName("submit"))
{
if (input.Id == "submit" && input.GetAttribute("value") == "Login")
{
input.InvokeMember("click");
break;
}
}[/src]
Вопрос: как узнать ElementId?
Ответ
#2
Как бы поиск компонента в документе только по elementId или тагу и идет. Откуда код знает какой элемент вам надо найти в документе?
Ответ
#3
Как где? - в коде самой открываемой странички Smile
Ответ
#4
ANZO Написал:Как бы поиск компонента в документе только по elementId или тагу и идет. Откуда код знает какой элемент вам надо найти в документе?
Мне нужно ввести логин и пароль. Они подгружаются через js. Вот мне нужно узнать какой так или elementId, как его вывести?

Добавлено через 2 часа 17 минут
[SRC="php"]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />
<style type="text/css" media="screen">@import 'themes/elt_lite/login.css'/**/;</style>
<script type="text/javascript">
<!--//--><![CDATA[//><!--

function firstFocus() {
if (document.forms.length > 0)
{
var f = document.forms[0];
for (var i=0; i<f.length; i++)
{
var e = f.elements[i];
if ((e.name) && (e.type) && ((e.type=='text') || (e.type=='textarea')) && (!e.disabled))
{
e.focus();
break;
}
}
}
}

//--><!]]>
</script>

</head>

<body id="login" onload="firstFocus();">
<!-- Start #login-container -->
<div id="login-container">


<!-- redirect to splash for all cases. Set splashpage iframe src to "https://hostname/cas/login#splashpage" -->
<script type="text/javascript">
var queryString = window.location.search;
if (window.location == window.parent.location || !queryString || queryString.indexOf("page=splashpage") < 0) {
var splashURL = "http://" + window.location.hostname + "/p/splash";
window.open(splashURL,"_top");
}
</script>


<!-- Start #login-form -->
<div id="login-form-container">
<form id="fm1" class="fm-v clearfix" action="/cas/login?page=splashpage&amp;target=top&amp;service=/p/cas" method="post">


<fieldset>
<ol>
<li>
<!--
--**Usability project change has been started
--**Label is disable because UserName is coming dynamically from Resource bundle class (message.properties)
-->
<!--<label for="username">User ID:</label>-->
<label for="username">User ID</label>
<!--**Usability project change has been ended -->




<input id="username" name="username" class="required" tabindex="1" accesskey="n" type="text" value="" autocomplete="on"/>

</li>
<li>
<!--
--**Usability project change started
--**Label is disable because password is coming dynamically from Resourcebundle class (message.properties)
-->
<!-- <label for="password">Password:</label>-->
<label for="password">Password</label>
<!--**Usability project change has been Ended -->

<input id="password" name="password" class="required" tabindex="2" accesskey="p" type="password" value="" autocomplete="on"/>
</li>
<li class="last">
<button type="submit" name="submit" title="Login">Login</button>
<input type="hidden" name="lt" value="_тут_значение" />
<input type="hidden" name="_eventId" value="submit" />
</li>
</ol>
</fieldset>
</form>
</div>
<!-- End #login-container -->
</body>
</html>[/SRC]
Вот как вытащить elementId?
Ответ
#5
Актуально...........
Kakos Дайте Кастетчикам какойта УД. Без уд хреново падаєт бистро що ето капец, а єсли не УД то хотяби какойта хил.:redlol::redlol:
Ответ
#6
а так?
PHP код:
<?php 
webBrowser1
.Document.GetElementById("Login").InvokeMember("click");
Ответ
#7
http://yvision.kz/post/238540
Нашел это, но как узнать id...

Добавлено через 15 минут
http://www.cyberforum.ru/csharp-beginner...page2.html
Вот еще такое...
Ответ
#8
C# разработчики ваще лютая армия. Сейчас допишу коммент и пойду писать на C# для iOS
Ответ
#9
Не знаю, я не понимаю вашей проблемы. Писал не так давно клиента для JIRA, который как раз через webBrowser и работал - проблем никаких не возникло. Все id элементов спокойно просматриваются через сурс страницы.
Ответ
#10
ANZO, вообщем страница сделана через фреймы. Т.е. если запрашивать исходный html, то там будет запрос фрейма. Вот как запросить код страницы с выполненными фреймами я даже хз..
Пытался запрашивать по ElementId:
[SRC="c++"] webBrowser1.Document.All["username"].InnerText = "1";
webBrowser1.Document.All["password"].InnerText = "1";
webBrowser1.Document.All["submit"].InvokeMember("click");[/SRC]
В итоге имеем:
[Изображение: e7fda9fdd99fe1ab768f7b893a0f.png]

Добавлено через 22 минуты
Sp1tfire, не все так просто...не находит данный элемент, хотя страница загружена...возможно дело в том, что так называется label и input...

Добавлено через 26 минут
[Изображение: 648d69072da5800117b623e7221e.png]
Соответственно отловить value кнопки submit можно только через RegExp. Однако я не могу просто ввести логин и пароль..

Добавлено через 3 часа 37 минут
Вообщем, что имеем:
[SRC="java"]Страница:
{
Фрейм:
{
Кнопка для входа
}
}[/SRC]
Через
[SRC="c++"]foreach (HtmlElement Element in webBrowser1.Document.All)
{
if (Element.Id == "cas_iframe")
{
MessageBox.Show("1");
}
}[/SRC]
Программа ищет только фрейм, а все, что внутри него, она уже найти не может, причем данная вещь работает только если кликнуть по кнопке, иначе ничего не находит. (Если запустить еще раз, то найдет).
[SRC="c++"] while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents();}[/SRC]
Стоит, но почему-то по страничке не ищет...
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Загрузка armor.grp в веб клиент пару вопросов OneThunder 8 2,168 07-30-2016, 11:00 PM
Последний пост: OneThunder
  У меня есть пару вопросов. Boris2105 9 2,890 09-17-2013, 07:45 PM
Последний пост: Quarrel
  Пару вопросов о denwer cmex 7 3,176 08-21-2011, 06:28 PM
Последний пост: Yukio

Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)