在不同的选项卡(Javascript)上按名称IE8获取元素

本文关键字:IE8 元素 获取 Javascript 选项 | 更新日期: 2023-09-27 18:24:13

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

问题有两种形式:

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

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

在不同的选项卡(Javascript)上按名称IE8获取元素

如果您正在测试的网站可以访问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的。