win10 uwp 模拟网页输入 使用 cookie

有时候需要获得网页的 js 执行后的源代码,或者模拟网页输入,如点按钮输入文字。

如果需要实现,那么就需要用 WebView ,使用方法很简单。

首先创建一个 WebView ,接下来的所有输入都需要在 NavigationCompleted 之后才可以使用。

所以我就在构造方法使用下面代码

    webView.Navigate(new Uri("https://www.bing.com/"));
    webView.NavigationCompleted += webView_NavigationCompletedAsync;

在模拟输入之前,如果需要在 UWP 使用 Webview 获取网页源代码,那么需要在 加载完成的函数 使用下面的代码来 获得加载完成网页的源代码。

private async void webView_NavigationCompletedAsync(WebView sender, WebViewNavigationCompletedEventArgs args)
{
    str = await webView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });
}

用到的方法就是 webView.InvokeScriptAsync 使用 js 代码。

如果需要在指定的文本框输入文字,可以使用下面代码

private async void EnterTextAsync(string text,string enterText)
{
    var functionString = string.Format(@"document.getElementsByClassName('{0}')[0].innerText = '{1}';",text, enterText);
    await webView.InvokeScriptAsync("eval", new string[] { functionString });
}

看起来这些都是 js 的知识,难度不高。

点击按钮可以使用下面代码

private async void SimulateClickAsync(string button)
{
    var functionString = string.Format(@"document.getElementsByClassName('{0}')[0].click();",button);
    await webView.InvokeScriptAsync("eval", new string[] { functionString });
}

如果需要填写表单 form 那么前面使用的innerText需要修改为value,建议打开 edge 在控制命令输入,尝试一个正确的输入

更多的请去了解 js 的知识

UWP webView 模拟登陆 csdn

下面给大家一个叫简单方法模拟登陆csdn

          GeekWebView.Navigate(new Uri("http://passport.csdn.net/"));

            GeekWebView.NavigationCompleted += OnNavigationCompleted;


            F = async () =>
            {

                var functionString = string.Format(@"document.getElementsByName('username')[0].value='{0}';", "lindexi_gd@163.com");
                await GeekWebView.InvokeScriptAsync("eval", new string[] { functionString });
                functionString = string.Format(@"document.getElementsByName('password')[0].value='{0}';", "密码");
                await GeekWebView.InvokeScriptAsync("eval", new string[] { functionString });

                functionString = string.Format(@"document.getElementsByClassName('logging')[0].click();");
                await GeekWebView.InvokeScriptAsync("eval", new string[] { functionString });
            };

        private Action F { set; get; }

        private void OnNavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
        {
            F();
        }

使用 cookie

如果需要使用 cookie 那么请加上下面的代码

            Windows.Web.[Http.Filters.HttpBaseProtocolFilter](Http.Filters.HttpBaseProtocolFilter ) filter = new Windows.Web.[Http.Filters.HttpBaseProtocolFilter();](Http.Filters.HttpBaseProtocolFilter(); )

只要写上这句话就好了

参见:https://stackoverflow.com/questions/44685469/programatically-press-a-button-in-a-website-from-an-app-in-a-phone/44692971


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android 开发学习

TabLayout double click 标题回顶部

18920
来自专栏Web 开发

给iOS的WebView添加远程调试

定位到 didFinishLaunchingWithOptions 代码块中。

9700
来自专栏张善友的专栏

Webix JavaScript UI 库可以帮你构建跨平台的HTML5 和 CSS3 程序

XB 软件公司最近发布了JavaScript UI 库Webix ,其中包含的组件超过45个,用这些组件可以构建跟HTML5 和 CSS3 兼容的程序,这些程序...

21660
来自专栏Python、Flask、Django

Go语言学习之 - 简单的并发程序

10910
来自专栏前端人人

React多页面应用2(处理CSS及图片,引入postCSS,及图片处理等)

本教程总共7篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1.React多页面应用1(webpack开发环境搭建,包...

40270
来自专栏Windows Community

New Windows 10 SDK - Toast Notification

概述 Toast Notification 在 UWP App 中有很重要的作用,能够很大程度上增强 App 和用户之间的沟通,比如运营推广活动、版本更新、提醒...

37570
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native0.50+开发指导

概要 本文主要对React Native 0.50的关键性的更新做个讲解和开发适配指导,希望能对从事React Native开发的你有所帮助: 在兼容性方面新增...

28440
来自专栏谦谦君子修罗刀

当iOS的webView加载Html页面之后

写到webView这块,硬生生堵了好久。现将问题记录如下。 问题一:加载webView之后浏览网页,有时程序会莫名其妙奔溃,查看内存居然高达上百兆。查阅网上资料...

346100
来自专栏更流畅、简洁的软件开发方式

【自然框架】QuickPager asp.net 分页控件的Ajax分页方式。

  上次比较匆忙,Ajax的分页方式仅实现了基本功能,或者说只是验证了我的想法。现在对Ajax分页有做了一些调整,现在可以正式用了。   使用方法还是非常简单,...

27670
来自专栏殷源的专栏

WKWebView详解

WKWebView主要涉及到以下类或协议,各部分可能互相依赖,文章按照apple文档的划分对每一个模块进行了详细的解释。

5.5K160

扫码关注云+社区

领取腾讯云代金券