以编程方式在电话中的应用程序中按下网站中的按钮

时间:2017-06-21 20:12:45

标签: c# html uwp

我正在使用c#创建一个UWP应用程序。该应用程序应该从网站获取信息并将其呈现给用户。我已经浏览了网站的DOM并设法下载该网站的HTML。但有些信息是隐藏的,只有在网站上进行某些按钮或选择时才会出现。有没有办法,我可以编程进入网站,做出选择,下载新的HTML?

第二个问题:应用程序应该有一个fb liveChat函数链接到一个fb页面。如何将facebook liveChat链接到这个应用程序?我对如何使这项工作没有任何想法。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

以下是在搜索框中输入文字和在Bing中单击搜索按钮的示例

  1. 使用WebView完成所有工作

    WebView webView = new WebView();
    
  2. 使用WebView的InvokeScriptAsync方法使用JS代码

    webView.InvokeScriptAsync("eval", new string[] {});
    
  3. 使用以下代码

    获取网站的HTML
    public LoadURI()
    {
        webView.Navigate(new Uri("https://www.bing.com/"));
        webView.NavigationCompleted += webView_NavigationCompletedAsync;
    }
    
    string siteHtML = null;
    
    private async void webView_NavigationCompletedAsync(WebView sender, WebViewNavigationCompletedEventArgs args)
    {
        siteHtML = await webView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });
    }
    
  4. 使用以下代码

    在搜索框中
  5. 输入文字

    private async void EnterTextAsync(string enterText)
    {
        var functionString = string.Format(@"document.getElementsByClassName('b_searchbox')[0].innerText = '{0}';", enterText);
        await webView.InvokeScriptAsync("eval", new string[] { functionString });
    }
    
  6. 使用以下代码

    模拟点击
    private async void SimulateClickAsync()
    {
        var functionString = string.Format(@"ddocument.getElementsByClassName('b_searchboxSubmit')[0].click();");
        await webView.InvokeScriptAsync("eval", new string[] { functionString });
    }
    
  7. 使用第3步
  8. 获取新网站的HTML

    以下是LogIn到StackOverflow的示例应用:StackOverFlow-LogIn