[C# - WebBrowser] нажатие кнопки в окне браузера

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by stas1kus, 23 Apr 2014.

  1. stas1kus

    stas1kus New Member

    Joined:
    25 Jun 2012
    Messages:
    33
    Likes Received:
    4
    Reputations:
    0
    Добрый день.
    Столкнулся с проблемой, что не нажимается кнопка на форме, облазил много форумов и сайтов, но ответа найти не смог. Вся проблема в том что на сайте есть Н-ное кол-во кнопок с одинаковым классом, но ту которую мне нужно нажать, имеет атрибут onclick="alleyAttack('some ID')"

    Code:
    //1st button
    <td>
    <div class="button" onclick="alleyAttack(517469);">
       <span class="f">
          <i class="rl"></i>
          <i class="bl"></i>
          <i class="brc"></i>
          <div class="c">
             Fire
          </div>
       </span>
    </div>
    </td>
    
    //2nd button, and else buttons as like this...
    <td>
    <div class="button">
    <a class="f" href="/phone/message/send/517469/">
    <i class="rl"></i>
    <i class="bl"></i>
    <i class="brc"></i>
    <div class="c">Message</div>
    </a>
    </div>
    </td>
    
    Подскажите пожалуйста, как правильно мне исправить код, чтоб кнопка нажималась.
    Code:
    foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("div"))
    {
       if (el.GetAttribute("onclick").Equals("alleyAttack(517469)"))
       {
           el.InvokeMember("click");
       }
    }
    

    Спасибо
     
  2. ol1ver

    ol1ver Active Member

    Joined:
    22 Jul 2011
    Messages:
    237
    Likes Received:
    155
    Reputations:
    0
    В исходном коде есть или подгружается?
    Плагин firebug и т.п есть?
     
  3. stas1kus

    stas1kus New Member

    Joined:
    25 Jun 2012
    Messages:
    33
    Likes Received:
    4
    Reputations:
    0
    если правильно понял 1й вопрос - то это сайт, т.е. код подгружается.
    ФБ конечно есть, им и пользуюсь, от туда и достал код на кнопку.
     
  4. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Вот тут неплохой тебе HELP

    Вкратце - либо ищешь елемент по его ID либо Name, либо
    Code:
    foreach(...){
     if (element.GetAttribute("className") == "button")
        {
            element.InvokeMember("click");
        }
    }
    
    Или - напрямую вызываешь javaScript функцию нужную тебе через InvokeScript(...).