页面对象模型中的登录问题

曼尼什B

我有一个用例,它表示以下步骤我试图在 Nunit 中使用 POM 来实现它。

  1. 打开登录表单
  2. 使用 Excel 在用户名和密码字段中输入数据。

    3a. 如果凭据正确

    a) 记录通过的测试用例

    b)点击注销链接

4.关闭剩余的浏览器窗口

3b. 如果凭据不正确

a) 将测试用例记录为失败

b) 清除用户名和密码文本框

c) 无需关闭浏览器窗口。

现在的问题是已经在主类的 [Setup] 中实例化了驱动程序。如果登录成功,我们如何再次实例化浏览器窗口。

我正在添加以下代码

Login Object Class
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using SeleniumExtras.PageObjects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PracticePrograms.PageObjectsWithPageFactory
{
public class VSSLoginObjects
{
    [FindsBy(How = How.Id, Using = "userNameOldLook")]
    public IWebElement Userid { get; set; }

    [FindsBy(How = How.XPath, Using = "//input[@type='password']")]
    public IWebElement Password { get; set; }

    [FindsBy(How = How.XPath, Using = "//a[contains(text(),'login')]")]
    public IWebElement Btn_Login { get; set; }

    [FindsBy(How = How.XPath, Using = "//li[contains(text(),'Login failed')]")]
    public IWebElement Lbl_Login_Failed { get; set; }

    [FindsBy(How = How.XPath, Using = "//a[contains(text(),'Logoff')]")]
    public IWebElement lnk_logoff;


    public VSSLoginObjects()
    {
        PageFactory.InitElements(DriverInstance.driver, this);
    }

    public void Login_QAPortal()
    {
        Userid.SendKeys("v0c1344");
        Wait.UntilElementDisplayed(DriverInstance.driver, Password);
        Password.SendKeys("welcome5");
        Btn_Login.Click();
        //return new QAPortal_LandingPage_Objects();

    }
    public void Test_Login_QA_Portal()
    {
        String Excel = @"C:\\Selenium Files\\TestData.xlsx";
        int length = ExcelClassTemp.GetRowCount(Excel, 3);
        for (int i = 2; i <= length; i++)
        {

            String data = ExcelClassTemp.ReadExcel(Excel, 3, i, 1);
            String upper_data = data.ToUpper();
            Userid.SendKeys(upper_data);
            Password.SendKeys("Welcome567");
            Btn_Login.Click();

            if (DriverInstance.driver.PageSource.Contains("Trucks Portal"))
            {
                Console.WriteLine("User Credentials" + upper_data + "Passed");
                lnk_logoff.Click();
                DriverInstance.driver.Close();

            }
            else
            {
                Console.WriteLine("User Credentials" + upper_data + "Failed");
                Userid.Clear();
                Password.Clear();
            }



        }

    }
   }
   }

添加主类

Main Class
using System;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NUnit.Framework;
using OpenQA.Selenium.Chrome;

 namespace PracticePrograms.PageObjectsWithPageFactory
 {
public class Tests
{
    [SetUp]
    public void setup()
    {
        DriverInstance.driver = new ChromeDriver();
        DriverInstance.driver.Navigate().GoToUrl("Go to Url");
        DriverInstance.driver.Manage().Window.Maximize();


    }



    [Test]
    public void Perform_VSS_Login()
    {
        VSSLoginObjects login = new VSSLoginObjects();
        login.Test_Login_QA_Portal();

    }



    }

}
游轮潘迪

做一些改变:

引用将其DriverInstance.driver声明为全局。

当您在 Test 方法中创建 VSSLoginObjects 对象时,例如:

VSSLoginObjects login = new VSSLoginObjects();  

传递DriverInstance.driverin的引用new VSSLoginObjects()

类似的东西:VSSLoginObjects(reference of driver object)

说明:当您创建任何类的对象并传递引用时,将调用参数化 构造函数

我相信这个构造函数会被调用:

 public VSSLoginObjects()
    {
        PageFactory.InitElements(DriverInstance.driver, this);
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用发送动态选择页面对象中的选项

来自分类Dev

如何从Ruby中的页面对象迭代选择列表

来自分类Dev

页面对象模型链接是否与黄瓜小黄瓜兼容?

来自分类Dev

页面对象中的For循环未正确运行

来自分类Dev

尝试使用Cucumber.js实施页面对象模型时发生错误

来自分类Dev

量角器页面对象问题

来自分类Dev

如何在页面对象小部件中嵌入元素

来自分类Dev

JUnit / Selenium:拆分我的类以使用页面对象模型

来自分类Dev

硒页面对象模型框架

来自分类Dev

黄瓜中不同页面对象的常用方法

来自分类Dev

Selenium-页面对象模型与定义公共static final

来自分类Dev

具有静态页面对象模型的Selenium Automation

来自分类Dev

具有页面对象模型的Specflow中的常见步骤定义

来自分类Dev

页面对象模型页面初始化

来自分类Dev

使用页面对象在嵌套表中单击链接

来自分类Dev

TypeError:从登录方法返回页面对象时的未绑定方法

来自分类Dev

Selenium Framework页面对象模型和页面导航

来自分类Dev

硒中的页面对象模型和页面工厂之间有何区别?

来自分类Dev

JUnit / Selenium:拆分我的类以使用页面对象模型

来自分类Dev

如何在页面对象小部件中嵌入元素

来自分类Dev

硒页面对象模型框架

来自分类Dev

页面对象模型实践

来自分类Dev

在使用 C# 的 Selenium 页面对象模型中鼠标悬停是不可能的

来自分类Dev

使用页面对象模型和页面工厂为我的元素传递参数

来自分类Dev

如何在页面对象模型中编码页面以便更轻松地调试量角器测试?

来自分类Dev

使用 Python 查询页面对象模型

来自分类Dev

使用 UIAutomator 和 Python 的页面对象模型

来自分类Dev

有没有办法从单独的文件中获取存储在页面对象模型之后的元素的 xpath?

来自分类Dev

页面对象模型的“浏览器”的 Capybara 实例?

Related 相关文章

  1. 1

    使用发送动态选择页面对象中的选项

  2. 2

    如何从Ruby中的页面对象迭代选择列表

  3. 3

    页面对象模型链接是否与黄瓜小黄瓜兼容?

  4. 4

    页面对象中的For循环未正确运行

  5. 5

    尝试使用Cucumber.js实施页面对象模型时发生错误

  6. 6

    量角器页面对象问题

  7. 7

    如何在页面对象小部件中嵌入元素

  8. 8

    JUnit / Selenium:拆分我的类以使用页面对象模型

  9. 9

    硒页面对象模型框架

  10. 10

    黄瓜中不同页面对象的常用方法

  11. 11

    Selenium-页面对象模型与定义公共static final

  12. 12

    具有静态页面对象模型的Selenium Automation

  13. 13

    具有页面对象模型的Specflow中的常见步骤定义

  14. 14

    页面对象模型页面初始化

  15. 15

    使用页面对象在嵌套表中单击链接

  16. 16

    TypeError:从登录方法返回页面对象时的未绑定方法

  17. 17

    Selenium Framework页面对象模型和页面导航

  18. 18

    硒中的页面对象模型和页面工厂之间有何区别?

  19. 19

    JUnit / Selenium:拆分我的类以使用页面对象模型

  20. 20

    如何在页面对象小部件中嵌入元素

  21. 21

    硒页面对象模型框架

  22. 22

    页面对象模型实践

  23. 23

    在使用 C# 的 Selenium 页面对象模型中鼠标悬停是不可能的

  24. 24

    使用页面对象模型和页面工厂为我的元素传递参数

  25. 25

    如何在页面对象模型中编码页面以便更轻松地调试量角器测试?

  26. 26

    使用 Python 查询页面对象模型

  27. 27

    使用 UIAutomator 和 Python 的页面对象模型

  28. 28

    有没有办法从单独的文件中获取存储在页面对象模型之后的元素的 xpath?

  29. 29

    页面对象模型的“浏览器”的 Capybara 实例?

热门标签

归档