- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近开始了一个新项目,它可以在默认的 Visual Studio 2015“webBrowser”中正常工作。不幸的是,默认浏览器不支持我需要它运行的一些网络元素。因此,我决定寻找一个可以运行此元素的浏览器替代方案。
经过一些研究后,我决定使用 GeckoFx,主要是因为我读到它的命令功能的工作方式与原始的 webBrowser 非常相似(例如 GetElementById 之类的命令)。
我正在尝试创建一个程序来自动登录“login.live.com”。我不知道为什么,但是当它运行代码时,“密码”值条目似乎可以工作,但电子邮件值条目却不能。请帮我找出原因!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace XLP_2_11_16__2_
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//This is not the actual folder location. Part of it was suppstituded by "..." for safety reasons.
Gecko.Xpcom.Initialize(@"C:\...\bin\Debug\xulrunner");
}
private void Form1_Load(object sender, EventArgs e)
{
geckoWebBrowser1.Navigate("https://login.live.com");
}
private void button1_Click(object sender, EventArgs e)
{
//Actual email and password was substituted for safety reasons.
string email = "myemail@email.com";
string pass = "mypassword";
geckoWebBrowser1.Document.GetElementById("i0116").SetAttribute("value", email);
geckoWebBrowser1.Document.GetElementById("i0118").SetAttribute("value", pass);
geckoWebBrowser1.Navigate("javascript:void(document.forms[0].submit())");
}
private void geckoWebBrowser1_Click(object sender, EventArgs e)
{
}
private void geckoWebBrowser1_DocumentCompleted(object sender, Gecko.Events.GeckoDocumentCompletedEventArgs e)
{
}
public void Delayed(int delay, Action action)
{
Timer timer = new Timer();
timer.Interval = delay;
timer.Tick += (s, e) => {
action();
timer.Stop();
};
timer.Start();
}
}
}
这是表单设计:
如果有人知道更好的方法,请告诉我请帮忙!!
最佳答案
我能够复制您所目睹的行为。我相信这是因为输入字段类型是“电子邮件”,它触发了验证。我能够使用 Gecko.DOM 模块中的 GeckoInputElement 类型填充该字段。
以下代码对我有用:
var emailField = new Gecko.DOM.GeckoInputElement(geckoWebBrowser1.Document.GetHtmlElementById("i0116").DomObject);
emailField.Value = @"test@test.com";
var passwordField = new Gecko.DOM.GeckoInputElement(geckoWebBrowser1.Document.GetHtmlElementById("i0118").DomObject);
passwordField.Value = @"test_password";
关于javascript - 如何在 C# 中运行 GeckoFx "GetElementById"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35345144/
我已将 skybound gecckofx 集成到我的应用程序中。我能够填写文本框 GeckoElement username = null; username = checkDoc.GetEleme
我正在尝试从页面下载图像。但它只显示(找到图像)如果我手动单击右键,我希望它自动下载任何人现在更好的解决方案?尝试过 GeckoImageElement img = (GeckoImageElemen
我有一个应用程序设置为使用 GeckoFX 网络浏览器执行一些自动化。我的应用程序设置得很好,一切正常。 我遇到的问题是,当 Gecko 将网页加载到自身时,它有时不会长时间触发 DocumentCo
我的项目中有 GeckoFX 45 并将其用作网络抓取工具,它加载 YouTube 页面并收集标题、评论数量、观看次数最多的视频等信息...在我一年多没有使用这个工具之后,但是当我调试它时所有其他网站
我正在使用 GeckoFx 在我的应用程序中显示一些 html 页面。但是控件不会加载本地镜像。我使用 GeckoBrowser.Document.Body.InnerHtml = htmlcode;
我正在做一个桌面应用程序,其中打开并显示本地 html 文件.. 我正在使用它作为信息亭。 我尝试使用 webbrowser 控件在 c# 中打开网站 我使用 www.kids.sandiegozoo
我正在使用最新的 GeckoFX 18(hindlemail 的分支)并努力实现这个简单的方法:处理文件下载。 我想知道 GeckoWebBrowser 中是否正在下载文件。没有文件下载事件,更糟糕的
我在我的 Windows 应用程序中使用 Gecko Web 浏览器版本 21.0.1 和 .net Framework 4.0。 当我导航到某些网页时,我会弹出确认消息: This web page
我正在使用 C# 语言和 GeckoFX 浏览器库编写浏览器应用程序。 当我使用 whatismybrowser.com 测试浏览器时,它显示我的屏幕分辨率 (1366x768)。我想像 firefo
我是新来的,希望在 C# 中获得有关 geckoFX 的帮助 所以我刚刚下载了 geckoFX 并执行了以下操作。 已下载:geckofx.dll 已下载:XULRunner 我成功添加了 gecko
我正在尝试设置代理用户名和密码。我看到了这篇文章 ( http://geckofx.org/viewtopic.php?id=832 ),我认为它可能与用户名/密码的设置类似,例如: Skybound
我找不到在点击网页上的链接时拒绝打开新窗口的方法。所有关于弹出窗口的首选项都不起作用。 我想在当前窗口中打开任何点击的链接。我该怎么做? 最佳答案 您可以使用事件 CreateWindow 来处理新的
我正在尝试使用 GeckoFx v33 和 Javascript 向下滚动页面。我的 C# 代码如下: private void scrollWb() { string
如果我使用默认的 Visualstudio webBrowser 控件 (IE),我会这样写: textBox3.Text = webBrowser1.Document.GetElementById(
我正在实现一个基于 Geckofx 的自定义浏览器,我想添加一个搜索引擎,您可以在其中键入任何单词并搜索您的文档以查找巧合,类似于 Ctrl+F 在 geckofx 中已经有办法做到这一点吗? 最佳答
有谁知道我如何在 GeckoFX 中获得整个页面的高度和宽度?在 IE WebBrowser 对象中,我可以查看 WebBrowser.Document.Body.ScrollRectangle。(这
我正在为 C# 应用程序使用 Geckofx v18。 是否可以将其配置为阻止某些域?如果是这样,怎么做。 更新:我想这样做是为了阻止某些外部图像在网站上加载,因为它们消耗了过多的带宽。此外,我使用
为了调试,我需要操作 GeckoFX Webbrowser 控件的 HTTP 请求中的主机字段。有谁知道我该怎么做? 最佳答案 好的,我知道了。您必须设置一个额外的 header ,然后主机 head
我正在使用 Geckfx18.0 和 xulrunner18.01。由于 Geckofx 与其他实例共享 cookie 和用户首选项,因此我尝试创建一个新的配置文件目录以使它们具有独特的设置,但这似乎
我正在使用 C# + GeckoFX-18.0 (bitbucket.org/geckofx) 开发网络浏览器,但是当我访问包含视频的页面时,它根本不会加载视频 - 视频区域保持全黑。我安装了 Fir
我是一名优秀的程序员,十分优秀!