1

我正在用 C# 开发一个程序,该程序可以自动将信息输入到网站中。该程序使用一个库(Coypu),它允许执行此操作并执行 Javascript 以进一步操作。

问题有两种形式:

  • 该网站仅对其对象使用名称(而不是 ID),我必须为它们使用 IE8。因此我无法使用document.getElementsByName('name');,因为早期版本的 IE 不支持它。
  • 我通过使用网站上的表单找到了一种解决方法,但是在使用它时遇到了问题,因为该网站必须单击一个链接才能为自己创建第二个选项卡,这让我无法在第二个选项卡中获取表单。使用类似的东西document.forms[formIndex].elements['elementsName'];(尽管选项卡似乎有焦点)只会给我主选项卡中的表单。

有没有人解决过这个问题或在 Javascript 中找到了解决方法?另外,我不确定 jQuery 是否可以在我的场景中使用,因为 Javascript 是传递给 C# 方法的字符串。但是,它可能会或可能不会起作用。

4

1 回答 1

0

如果您正在测试的网站可以访问 jQuery,您可以使用 Coypu 以各自的形式填充特定字段:

例如

void PopulateInputField(int formName, string fieldName, string fieldValue)
{
    browser.ExecuteScript(string.Format("$('form[name='{0}'] > input[name='{1}']).val('{2}')", formName, fieldName, fieldIndex));
}

注意传递给 Coypu 的 ExecuteScript 的 C# 字符串如何包含 jQuery。

于 2013-09-12T20:57:14.753 回答