首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理缺乏足够独特属性的HTML控件的测试?

如何处理缺乏足够独特属性的HTML控件的测试?
EN

Stack Overflow用户
提问于 2014-04-12 19:33:02
回答 1查看 1.8K关注 0票数 1

我正在使用编码的UI测试来测试web应用程序。

我有一个类Locator,用于存储CUIT查找控件所需的详细信息。若要在控件上操作,页对象指定的是定位器,而不是控件,低级函数查找控件并执行操作。

现在,我们班有:

  • 定位器名。
  • 可以定位控件的HTML元素的一个或多个吸引名/吸引值对。
  • 指定所需匹配的运算符(包含或EqualTo)。

问题:我需要操作的一些控件没有足够的唯一属性来查找它们。(是的,我知道开发人员应该改进他们的HTML,但我并不控制这一点。)我一直在使用一个定位器来查找附近的元素,然后在DOM中“步行”到我想要的元素。我讨厌在我的页面对象中使用这个DOM遍历代码,甚至在函数中加入这些代码。

一种可能的解决方案:,我正在考虑增强类Locator,以便它可以具有attrName/attrValue对,这是对具有DOM遍历代码的函数的引用。这样做的一个优点是页面对象总是使用定位器对象。另一种情况是,当HTML得到改进时,定位器可以从DOM遍历代码更改为attrName/attrValue对,这对于页面对象来说是透明的。

不过,我觉得这可能太复杂了。

这个问题有更好的解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-21 17:39:17

具体而言,不确定您的定位器是如何工作的,但是您能否找到与该对象最近的父级,比如一个id为" parent“的HTML Div,然后计数下面的标记实例?例如:

代码语言:javascript
运行
复制
HtmlDiv id="parent">
    HtmlHyperlink>text1</ 
    HtmlHyperlink>text2</

将需要下列代码:

代码语言:javascript
运行
复制
public HtmlHyperlink text2Link
{
    get
    {
        HtmlDiv parentDiv = new HtmlDiv(browser);
        parentDiv.SearchProperties["id"] = "parent";
        HtmlHyperlink target = new HtmlHyperlink(parentDiv);
        target.SearchProperties["TagInstance"] = "2";
    }
 }

这将在父对象下找到第二个超链接。(标记实例不是基于零的)。

然后,您只需根据需要与对象交互:

代码语言:javascript
运行
复制
Mouse.Click(text2Link);

例如。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23035158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档