Ali Al-Masry Ответов: 3

Щелкните HTML-элемент с помощью веб-браузера на языке C#


привет, ребята , вот код, который содержит кнопку, которую мне нужно нажать, но я не могу этого сделать, хотя я пробовал много способов сделать это с помощью
currentwb.Document.GetElementById

но как мы видим этот код не имеет идентификатора для элемента ,,
<a class="single_like_button btn3-wrap"  önclick="openWin_1083724();">
						                    <span> </span><div class="btn3">Click Here</div></a>


Итак, любое предложение о том, как я могу получить этот элемент, нажато ?

3 Ответов

Рейтинг:
26

Zoltán Zörgő

Вы не можете нажать на него? Это не имеет никакого смысла для меня. Вы хотите вызвать событие click на элементе из javascript? Попробовать это: http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/[^]

[Обновление]
Если вы хотите автоматизировать IE, вам лучше использовать этот подход: http://harness.codeplex.com/[^]

Если вы придерживаетесь WebBrowser control (currentwb), попробуйте этот подход:

HtmlElement link = currentwb.Document.GetElementByID("id_of_element")
link.InvokeMember("Click")


Или, если вы по какой-то причине не можете назначить id, вы можете использовать этот подход.
HtmlElementCollection links = currentwb.Document.GetElementsByTagName("A");

foreach (HtmlElement link in links)
{
    if (link.InnerText.Equals("Link text"))
        link.InvokeMember("Click");
}

Будьте внимательны, чтобы поместить в Оператор IF правильное условие для идентификации вашей ссылки.


Sergey Alexandrovich Kryukov

Я бы скорее согласился с тем, что "это не имеет смысла...". использование fireClick, на которое вы ссылаетесь, возможно, но обычно не требуется. Пожалуйста, смотрите мой ответ.
—СА

Zoltán Zörgő

Правда. Вообще-то он не нужен, и этот фрагмент кода тоже не требует его использования. Но кто знает, какова конечная цель операции... звучит как лошадь, пахнет как лошадь, выглядит как лошадь... но может быть зебра все же :)

Sergey Alexandrovich Kryukov

Это только потому, что зебра на самом деле лошадь (equus), а не "как лошадь" ... :-)
—СА

Ali Al-Masry

как я использую этот Java-код, когда я делаю это в C# ?

Zoltán Zörgő

1) Это был Javascript, а не Java
2) см. обновление. Обратите внимание, что GetElementById нуждается в идентификаторе для работы, ваш элемент не имеет идентификатора.

Ali Al-Masry

я знаю , что мой элемент не имеет идентификатора, и мне нужен способ щелкнуть по нему, есть какие-нибудь предложения ?

Zoltán Zörgő

Прочтите мои последние новости, пожалуйста. Здесь у вас есть все два варианта. Если первый из них не применим, вы все равно должны отличать его от всех других элементов. Но эта часть зависит от остального html - кода-и от того, как он изменяется между вызовами.

Ali Al-Masry

я пробовал это много раз с кодом, который вы предоставили ... но все равно не сработало !!

вот HTML скрипт который содержит в себе код кнопки без идентификатора


<span>
</span>
&ЛТ;див класс="btn3"и GT;Нажмите здесь&ЛТ;/дел&ГТ;

Zoltán Zörgő

Это только A элемент с классами single_like_button и btn3-wrap занятия на странице? Или это первый, или третий, или 27-й A элемент, или есть какая-то логика, как вы можете найти этот элемент в все ситуации? Это единственный, кто зовет? openWin_1083724(); функция, и она вызывает эту функцию во всех случаях? Для меня это выглядит как сгенерированное имя...

Ключ в том, что вы должны определить это A стихия какая-то. Если вы не можете, то вы не можете решить эту проблему. Но никто другой не может вам этого сказать, вы должны это выяснить, так как у вас есть доступ к странице, которую вы хотите контролировать. Той части кода, которую вы дали, просто недостаточно. Пожалуйста, учтите, что логика идентификации должна быть действительна во всех ситуациях, для каждой загрузки страницы.

Ali Al-Masry

Итак, брат , я попытался получить больше информации о своей проблеме , и я обнаружил, что его веб-страница использует скрипт и он не находится в источнике страницы, я получил его с помощью элемента Fire Fox Inspect.., и мне все еще нужен способ нажать эту кнопку !!

Zoltán Zörgő

И вообще, какова ваша конечная цель? Щелчок программно может быть не единственным вариантом. Скорее всего, нет. Любое веб-приложение-это, в конце концов, последовательность http-запросов и ответов. Практически все задачи веб-автоматизации можно эмулировать таким образом. Это выглядит более сложным, но это скорее другой подход. Пожалуйста, помните, что мы не можем видеть ваш экран, читать ваши мысли - может случиться так, что вы не видите проблему в правильном направлении, или у вас нет надлежащих технических знаний для ее решения.

Ali Al-Masry

спасибо брату за попытку помочь мне теперь я использовал много способов, чтобы щелкнуть любой элемент с тегами, которые я добавил , и он работал нормально и щелкал многие элементы в качестве моего кода, но он все еще не нажимал тот, который я ищу ...

но после того, как я закрою все открытые новые вкладки веб-браузера, он откроет другое окно IE, но оно исчезнет через 1-2 минуты также перед его загрузкой содержимого страницы !!

Ali Al-Masry

вот код из огненной лисы инспектировать элемент :

<div class="page_title">
Масритна
&ЛТ;/дел&ГТ;&ЛТ;div стиль="ширина:100 пикселей высота:100 пикселей; переполнения:скрытый;"&ГТ;&ЛТ;ИМГ стиль="ширина:100%; высота:авто;" название="Masritna" АЛТ="Masritna" в src="/ИМГ/готовить.PNG"и&ГТ;&ЛТ;/ИМГ&ГТ;</div>в <промежуток&ГТ; ... &ЛТ;/службы&ГТ;&ЛТ;див класс="btn3"&ГТ;
кликните сюда
</div>

Ali Al-Masry

а вот страница source :



<!Элемент DOCTYPE в HTML общественности "-//W3C для//определения DTD XHTML 1.0 переходный//ванной" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&ГТ;
<html xmlns="http://www.w3.org/1999/xhtml">
<голова>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
в <мета имя="ключевые слова" содержание="тест" /&ГТ;
<meta name="description" content="получайте лайки, подписчиков, подписчиков, просмотры и хиты . Простая регистрация, 50 баллов при старте и ежедневные 150 бонусных баллов для активных пользователей. Начните продвижение прямо сейчас и пригласите всех своих друзей присоединиться к примеру". />
<meta name="автор" content="тест" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="аудитория" content="все" />
<meta name="рейтинг" content="Общие сведения" />
<meta name="revisit-after" content="2 Day" />
<meta name="resource-type" content="document" />
<meta name="роботы" content="все" />
в <мета имя="гугл-переводчик-изготовление на заказ" содержание="3f4ffc751b6f619-aaa1185795a36d3e-gc243fde537c28ad5-11"&ГТ;&ЛТ;/мета&ГТ;

<link rel="ярлык" href="/favicon.ico" />
<link href="/styles/style2.css" rel="таблица стилей" type="text/css" />
<ссылка с href="/сценарии/jqueryui/УСБ/гладкость/jQuery-интерфейс.ПТК" отн="стилей" тип="текст/CSS в" /&ГТ;


<ссылка отн="стилей" тип="текст/CSS в" с href="/сценарии/MsgBox и в jQuery.с помощью MsgBox.Усс" /&ГТ;
<link rel="таблица стилей" type="text/css" href="/scripts/tiptip/tipTip.css" />

<сценарий тип="текст/яваскрипт" СРЦ="/scripts/jquery.min.js"&ГТ;&ЛТ;/скрипт>
<сценарий тип="текст/яваскрипт" СРЦ="/scripts/jqueryui/js/jquery-ui.min.js"&ГТ;&ЛТ;/скрипт>

<сценарий тип="текст/яваскрипт" СРЦ="/scripts/showLoading.js" &ГТ;&ЛТ;/скрипт>
<сценарий тип="текст/яваскрипт" СРЦ="/scripts/msgbox/jquery.msgbox.min.js"&ГТ;&ЛТ;/скрипт>
<сценарий тип="текст/яваскрипт" СРЦ="/scripts/simple_loading/simpleload.js"&ГТ;&ЛТ;/скрипт>
в <!-- &ЛТ;скрипт в src="/scripts/bxslider/jquery.easing.1.3.js" тип="текст/JavaScript"&ГТ;&ЛТ;/скрипт>
&ЛТ;скрипт в src="/scripts/bxslider/jquery.bxSlider.min.js" тип="текст/JavaScript"&ГТ;&ЛТ;/скрипт> --&ГТ;
&ЛТ;скрипт в src="/scripts/tiptip/jquery.tipTip.minified.js" тип="текст/JavaScript"&ГТ;&ЛТ;/скрипт>
&ЛТ;скрипт в src="/scripts/jquery.floating_popup.min.js" тип="текст/JavaScript"&ГТ;&ЛТ;/скрипт>


<link href="https://plus.google.com/104027597398828648329" rel="издатель" />

<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{parsetags: 'явный'}
</script>


<сценарий тип="текст/яваскрипт" СРЦ="/сценарии/готовые.в JS?1383653168"&ГТ;&ЛТ;/скрипт>

<сценарий тип="текст/яваскрипт" СРЦ="/сценарии/сценарий.в JS?1383653168"&ГТ;&ЛТ;/скрипт>

<название>Example.com - Facebook Likes</title>
</head>



<тело>


<script type="text/javascript">
(функция(){
ВАР збс = документ.метод createElement('скрипт');
збс.тип = 'текст/JavaScript';
збс.асинхронный = истина;
bsa.src = 'http://s3.buysellads.com/ac/bsa.js';
(документ.метод getelementsbytagname('голова')[0]||документ.метод getelementsbytagname('тело')[0]).метода appendChild(БСА);
})();
</script>


в <"&ГТ;&ЛТ див ИД="диалог-накладка;/дел&ГТ;
в <"&ГТ;&ЛТ див ИД="диалог-ИП;/дел&ГТ;

<div id="Div1">
</div>

<script type="text/javascript">
(функция (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
если (ум.метода getElementById(идентификатор)) { возвращение; }
в JS = D.в метод createElement(з); основы JS.идентификатор = идентификатор;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));
jQuery(документ).готово(функция(){

});
</script>

<div class="обертка">
<div id="headerCont">
<div class="header">
<!--заголовок заголовок begin--&ГТ;&ЛТ;див ИД="диалог-оверлей"&ГТ;&ЛТ;/дел&ГТ;
<div id="диалоговое окно">
<div class="dialog-content">
&ЛТ;див ИД="диалог-сообщение"&ГТ;&ЛТ;/дел&ГТ;
</div>
</div>

<div class="header_block">



&ЛТ;ИМГ СРЦ="/изображение/макет/компанииматериалы 1.ПНГ" АЛТ="добавь меня

Zoltán Zörgő

Это общедоступная страница? Если да, то можете ли вы поделиться URL-адресом?

Ali Al-Masry

http://addmefast.com/free_points/facebook_likes.html

Zoltán Zörgő

Я постараюсь зарегистрироваться из дома. Это бесплатная услуга?

Ali Al-Masry

да , он свободен, и я все еще пытаюсь с ним справиться !!

Zoltán Zörgő

Для меня эта страница выглядит иначе. У меня нет ссылки, похожей на ту, которую вы разместили. Извините, но я больше ничем не могу вам помочь.

Рейтинг:
19

Sergey Alexandrovich Kryukov

"Щелчок" - это то, что вы делаете с помощью мыши или, по сути, с помощью клавиатуры. Если вы подумаете об этом, то поймете, что вам нужен не щелчок. Вы просто хотите иметь "тот же эффект, что и щелчок пользователя по элементу". В других работах вам просто нужно позвонить openWin_1083724() из вашего JavaScript.

—СА


Ali Al-Masry

правильно , покажите мне, как с примером, пожалуйста .. я понятия не имею о том, как запустить или добавить java-скрипт в C# ???

Sergey Alexandrovich Kryukov

Пример? Конечно:

function clickBtn3() { openWin_1083724(); }

Только никогда не давайте вещам таких названий, с цифрами и т. д. Все имена должны быть семантическими.

Теперь какие "java-скрипты"?! Такого понятия не существует. Java - это не язык сценариев. Если Вы имеете в виду JavaScript, то это нечто совершенно не связанное с Java. "Запустить или добавить JavaScript в C#"?! Посмотрите, это показывает, что вы должны сначала узнать, как работает 1) веб, 2) что ASP.NET делает и как это работает, и так далее. Прямо сейчас у тебя нет ни малейшего понятия. Вам нужно сначала изучить его, и это не вопрос быстрого ответа.

Короче говоря, ASP.NET работает только на серверной части. Вы используете C# или другой язык для получения HTTP - запроса и генерации HTTP-ответа. Ответ может включать в себя все, что угодно (он определяется его тип содержимого), включая JavaScript. Браузер на стороне клиента получает HTTP-ответ и обрабатывает его, в частности, он может запускать JavaScript. И тогда вам нужно научиться, как заставить JavaScript работать. Итак, вам нужно выучить хотя бы немного JavaScript.

Вы уловили эту мысль?

—СА

Рейтинг:
1

Member 14834621

у меня есть вопрос как нажать на опцию Добавить ребенка в span
дайте Ма код


[КОД УДАЛЕН, ПОТОМУ ЧТО ОН ПОРТИТ ФОРМАТИРОВАНИЕ СТРАНИЦЫ]


Dave Kreskowiak

Размещение вашего вопроса в качестве ответа на старый вопрос-плохая идея.

Перейдите в меню "быстрые ответы" и нажмите кнопку "Задать вопрос".