У меня есть HTML-код:
<div class="contact-button link-phone {'path':'phone', 'id':'gtziy', 'id_raw': '243468578'} atClickTracking contact-a"
data-rel="phone">
<i data-icon="phone"></i>
<strong class="xx-large">HIDDEN TEXT HERE</strong>
<span class="spoiler">SHOW</span>
</div>
Я получаю div, используя этот код:
IHtmlElement nodeToClick = (IHtmlElement)document.All.First(m =>
m.HasAttribute("class") &&
m.ClassList.Contains("contact-button") &&
m.HasAttribute("data-rel") &&
m.GetAttribute("data-rel") == "phone");
И затем я щелкаю узел с помощью DoClick ():
nodeToClick.DoClick();
HTML-код div должен измениться на:
<div class="contact-button link-phone {'path':'phone', 'id':'gtziy', 'id_raw': '243468578'} atClickTracking contact-a activated"
data-rel="phone">
<i data-icon="phone"></i>
<strong class="xx-large">TEXT HERE</strong>
<span class="spoiler" style="display: none;">SHOW</span>
</div>
Но nodeToClick.TextContent
возвращает мне то же значение, которое было до nodeToClick.DoClick()
.
Что я пытался сделать:
- Вставить задержку
Thread.Sleep(2000)
перед регистрацией `nodeToClick.TextContent ' - Переписать nodeToClick после 2-секундной задержки без обновлениястраница
Перезагрузите HTML страницы, используя этот фрагмент кода:
public static string GetHTML(string url)
{
HttpWebRequest proxy_request = (HttpWebRequest)WebRequest.Create(url);
proxy_request.Method = "GET";
proxy_request.ContentType = "application/x-www-form-urlencoded";
proxy_request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5";
proxy_request.KeepAlive = true;
HttpWebResponse resp = proxy_request.GetResponse() as HttpWebResponse;
string html = "";
using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
{
html = sr.ReadToEnd();
sr.Close();
}
resp.Close();
html = html.Trim();
return html;
}
Но ничего из этого не сработало для меня .
Как получить новый TextContent элемента, на котором я щелкнул?