微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#->旧元素参考:切换页面时无法继续在forloop中定位

如何解决C#->旧元素参考:切换页面时无法继续在forloop中定位

我当前正在处理我正在处理的应用程序的问题。 工具:Selenium,Visual Studio,C#,PageObjecFactory,PageObjectModel

测试摘要我有一个通过电子邮件地址搜索的应用程序: 搜索完成后,将填充包含来宾姓名的“卡片”。 我发现的问题是某些卡与电子邮件地址相关联,但名称不匹配。 基本上,您必须单击“卡片”以转到“详细信息”页面,并验证您搜索的人是否与该卡片相关联。

为此,我构建了一个for循环,该循环遍历“卡片” 如果卡上的名称与我要查找的文本不匹配,则单击“卡”,该卡导航到“详细信息”页面,然后找到名称(作为关联方)。我遇到的问题是,当我使用所有卡回到原始页面时,我不会继续进行for循环。


我不确定(在for循环中)是否有可能导航到其他页面,验证信息,然后导航回原始页面,然后继续在forloop中离开的地方继续前进。

页面模型

class LightHousePage
{
    private IWebDriver driver;

    public LightHousePage(IWebDriver driver)
    {
        this.driver = driver;
        PageFactory.InitElements(driver,this);
    }

    [FindsBy(How = How.Id,Using = "search_input")]
    [CacheLookup]
    private IWebElement SearchBorrowers { get; set; }


    [FindsBy(How = How.ClassName,Using = "task-info-section")]
    [CacheLookup]
    private IWebElement taskCard { get; set; }

    //CoBorrower Icon
    [FindsBy(How = How.ClassName,Using = "cls-2borrowercoborrower")]
    [CacheLookup]
    private IWebElement coBorrower { get; set; }

    //CoBorrower Name
    [FindsBy(How = How.XPath,Using = "//*[@id='mat-tab-content-0-0']/div/div/app-borrower-info/div/div/div[1]/div[1]/span[2]")]
    [CacheLookup]
    private IWebElement coBorrowerFullName { get; set; }

    //Opportunity View Return to Main Tasks back button
    [FindsBy(How = How.ClassName,Using = "back-button")]
    [CacheLookup]
    private IWebElement returnToMainTasks { get; set; }

    /// <summary>
    /// Utilze the search bar on the LIght house page
    /// </summary>
    /// <returns>The LoginPage class instance.</returns>
    public LightHousePage searchInput (string searchText)
    {
        new webdriverwait(driver,TimeSpan.FromSeconds(3)).Until(ExpectedConditions.ElementToBeClickable(SearchBorrowers));
        SearchBorrowers.Click();
        SearchBorrowers.SendKeys(searchText);
        SearchBorrowers.SendKeys(Keys.Enter);
        Thread.Sleep(3000);
        return this;
    }

    /// <summary>
    /// email search varification
    /// </summary>
    /// <returns>The LoginPage class instance.</returns>
    public LightHousePage validateCards2(string textTovalidate)
    {
        List<IWebElement> tags = new List<IWebElement>(driver.FindElements(By.ClassName("task-info-section")));
        for (int i = 0; i < tags.Count; i++)
        {
            if (!tags[i].Text.Contains(textTovalidate))
            {
                tags[i].Click();

                Thread.Sleep(2000);
                coBorrower.Click();
                if (coBorrowerFullName.Text.Contains(textTovalidate))
                {
                    returnToMainTasks.Click();
                    //appears to not be continuting loop prog
                }
                else
                {
                    throw new Exception("LightHouse: Search Error");
                }
            }
        }

        return this;
    }
}

测试课程

[TestClass]
public class LightHouseSearchByEmail : DesktopHeadlessLocalTestsBase
{
    //public TestContext TestContext { get; set; }
    private static IWebDriver driver;
    private static NameValueCollection LighthouseUrls = ConfigurationManager.GetSection("Lighthouse/LighthouseUrls") as NameValueCollection;
    private static string LighthouseUrl = LighthouseUrls.Get("LighthouseUrl");
    private static readonly Logger logger = new Logger();
    private readonly ExcelData excelData = new ExcelData();

    [TestMethod]
    public void TestMethod1()
    {
        driver = HeadlessDriverSetup();
        driver.Navigate().GoToUrl(LighthouseUrl);

        LightHousePage lp = new LightHousePage(driver);
        OktaLoginPage op = new OktaLoginPage(driver);

        logger.Log("Navigate to the Light House page",driver);

        lp.searchInput("dummy.singer@veteransunited123.com");
        lp.validateCards2("Cx.Assumption Carrie");
        logger.Log("LightHouse CRM Search validation is complete",driver);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?