【问题标题】:WatiN: GetAttributeValue("value") does not return valueWatiN:GetAttributeValue("value") 不返回值
【发布时间】:2017-03-20 14:36:25
【问题描述】:

我打算从所有语言的 Google 翻译 菜单中显示 value 属性的值。它由页面的left列表表示。

这是我正在运行的代码,控制台上没有显示任何内容(除了新行)。有什么问题?

using System;
using WatiN.Core;

namespace Test
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            IE ie = new IE("https://translate.google.com/");

            Div selectLanguage = ie.Div(Find.ById("gt-sl-sugg"));
            foreach (var lang in selectLanguage.ChildrenOfType<Div>())
                Console.WriteLine(lang.GetAttributeValue("value"));

            ie.Close();

            Console.Read();
        }
     }
}

等待:2.1.0

【问题讨论】:

  • value 不是这些 div 的属性。你确定你说的不是innerHTMLinnerText
  • 我很确定,我不想要 text,而是属性 value
  • 好的,我明白了。将("value") 替换为("Value"),由于某种原因,所有属性的首字母都大写。
  • 我的猜测是 watin 将 DOM 元素反序列化为对象,并且由于使用该命名约定的属性名称是非常标准的,所以它就是这样做的。
  • 对不起,我是想在上一条信息中说这个。我在Console.WriteLine(lang.GetAttributeValue("Value")); 行上设置了一个断点,并调试并注意到所有其他属性和属性都是这样,并尝试了一下。如果您想接受它作为答案,我可以发表我的评论。

标签: c# .net testing automated-tests watin


【解决方案1】:

("value") 替换为("Value"),由于某种原因,所有属性的第一个字母都大写。我的猜测是 watin 将 DOM 元素反序列化为对象,并且由于使用该命名约定 (PascalCase) 的属性名称是非常标准的,因此对这些对象也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多