为了账号安全,请及时绑定邮箱和手机立即绑定

动态 id 的 PageObject 模型?C#

动态 id 的 PageObject 模型?C#

C#
梦里花落0921 2022-06-18 17:19:47
想知道是否可以为对象分配一个动态的 id?下面的示例代码:    int index = 0;    foreach (var row in rows)    {        if (randNumber == row.FindElement(By.Id($"r-number-{index}")).Text)        {            row.FindElement(By.Id($"view-record-{index}")).Click();            return;        }        index++;    }By.Id($"r-number-{index}")).Text在多个地方和多个规范流程步骤中使用,因此能够将其转换为页面对象会很棒。RandPage.RandNumber+index+简单来说,我最需要的是什么。有人知道任何可能的方法吗?
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

你可以试试这样的。


private IList<IWebElement> ListOfElements => Driver.FindElements(By.XPath("//p[contains(@id,'r-number-')]"));

//this finds all the p elements on the page with an id that contains r-number-


    public void ClickEachOne()

    {

        // click each element in that list


        foreach (var element in ListOfElements)

        {

            element.Click();

        }

    }


查看完整回答
反对 回复 2022-06-18
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

我建议在 PageObject 构造函数中添加参数,这将是索引。


然后您可以为该索引创建页面并使用它。


例如:


public class MyPage

    {

            private int _index = 0;

            ...


            public MyPage(int index)

            {

               _index = index;

            }

            ...

            public MyMethod()

            {

                //do something with the _index here

            }

    }


查看完整回答
反对 回复 2022-06-18
  • 2 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信