我可以导航到gmail,但后来我想做一些简单的事情,比如输入信用点并点击登录按钮。
private void btnSubmit_Click(object sender, EventArgs e)
{
btnSubmit.Enabled = false;
webGmail.LoadURL("http://www.gmail.com");
webGmail.LoadCompleted += ExecuteSomething;
}
private void ExecuteSomething(object sender, EventArgs eventArgs)
{
webGmail.ExecuteJavascript(@"<script src = 'http://code.jquery.com/jquery-latest.min.js' type = 'text/javascript'></script>");
webGmail.ExecuteJavascript(@"$('#Email').val('foo');");
webGmail.ExecuteJavascript(@"$('#Passwd').val('bar');");
webGmail.ExecuteJavascript(@"$('#signIn').click();");
}
什么都没发生。我知道在Chrome中使用开发人员工具,您无法修改页面上的任何内容。但有没有办法填写表格?
还有其他更好的无头浏览器吗?我实际上需要一个支持我可以放入表单的Web控件,以便我可以看到发生了什么。这是强制性的
答案 0 :(得分:2)
问题是脚本标记不是javascript - 它的HTML - 因此将其作为javascript执行只会引发错误。要使用ExecuteJavascript方法加载脚本,您需要在javascript中创建一个脚本元素并将其注入页头。
点击此处查看示例: http://www.kobashicomputing.com/injecting-jquery-into-awesomium
答案 1 :(得分:1)
我最近遇到了类似的问题。我试过cefsharp,awesomium,open-webkit-sharp,geckofx。最奇怪的是,WebBrowser是最先进的。它允许您直接使用C#执行几乎所有活动。例如,单击C#中的提交按钮,您只能在WebBrowser中使用。如果您仍然想使用替代引擎,我建议使用open-webkit-sharp - 它是最先进的(尽管按钮点击时也存在同样的问题)。
答案 2 :(得分:0)
WatiN有一个针对Webkit的Javascript实现,它是Awesomium所基于的,源代码是免费的,可以在他们的主页上下载。祝你好运。
也许这个问题也可以帮到你,calling Javascript from c# using awesomium。