2017-06-21 68 views
0

我正在使用c#創建一個UWP應用程序。該應用程序應該從網站獲取信息並將其呈現給用戶。我瀏覽了網站的DOM並設法下載了該網站的HTML。但是其中一些信息是隱藏的,只有在網站上有某些按鈕或選擇時纔會顯示。有沒有一種方法可以以編程方式進入網站,進行選擇,下載新的HTML?以編程方式從手機中的應用程序中按一個按鈕

第二個問題:應用程序應該有一個fb liveChat函數鏈接到一個fb頁面。我如何將facebook liveChat鏈接到這個應用程序?我不知道如何完成這項工作。謝謝你的幫助。

+1

你就不能直接調用後端?這個解決方案可能非常棘手。 – Stefan

+1

另一個想法 - 我知道我沒有幫助 - 但最好將您的第二個問題作爲單獨的問題發佈。在這個問題中,請張貼您自己嘗試過的相關代碼部分。 – Stefan

+0

感謝@Stefan的回覆,我會這麼做的。我沒有真正嘗試過任何方法,我已經四處搜尋,但無法找到任何可能的原因,我不知道我在找什麼。 – Zee

回答

2

這裏是在Bing

  1. 使用WebView在搜索框中輸入文字,然後點擊搜索按鈕,完成所有的工作

    WebView webView = new WebView(); 
    
  2. 使用InvokeScriptAsync方法的WebView到使用的實例JS代碼

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

    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. 使用下面的代碼輸入搜索框中的文本獲取HTML網站的

    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 }); 
    } 
    
  5. 模擬點擊使用下面的代碼

    private async void SimulateClickAsync() 
    { 
        var functionString = string.Format(@"ddocument.getElementsByClassName('b_searchboxSubmit')[0].click();"); 
        await webView.InvokeScriptAsync("eval", new string[] { functionString }); 
    } 
    
  6. 使用步驟3

這裏是登錄時的示例應用程序,以獲取StackOverflow的新網站的HTML:StackOverFlow-LogIn

+0

非常感謝@Vijay。這看起來像我想要的。讓我嘗試一下。 – Zee

+0

這是您的代碼的輸出:_A'類型'System.Exception異常發生在mscorlib.ni.dll中,但未在用戶代碼中處理 其他信息:異常來自HRESULT:0x80020101_。這兩個調用方法都會與該異常一起崩潰。 – Zee

+0

@Zee我的電腦有一些網絡問題,所以我無法測試它。嘗試使用WebView作爲XAML元素並檢查'webView.Navigate'是否工作。如果它工作,然後使用'Button' Click事件來測試'webView.InvokeScriptAsync(「eval」,new string [] {「document.documentElement.outerHTML;」});'code。 –

相關問題