Не удалось найти элемент электронной почты и пароль на веб-сайте Nordstrom, где мы пытаемся зарегистрироваться - PullRequest
0 голосов
/ 10 марта 2019

Выполните следующие действия: перейдите на веб-сайт стойки Nordstrom и нажмите «Зарегистрироваться». Когда появится всплывающее окно, введите адрес электронной почты и пароль и создайте учетную запись

Ниже приведен код:

class EntryPoint
    {
        static void Main(string[] args)
        {
            String parentHandle = Driver.driver.CurrentWindowHandle;

            EmailSignUp signup = new EmailSignUp();
            Driver.driver.Navigate().GoToUrl("https://www.nordstromrack.com/");
            Thread.Sleep(1000);
            signup.SignUpLink.Click();
            foreach (String winHandle in Driver.driver.WindowHandles)
            {
                Driver.driver.SwitchTo().Window(winHandle);
            }

            **signup.EmailInput.Click();
            signup.EmailInput.SendKeys(Config.Credentials.Valid.BaseEmail);** //Unable to find these elements
            Thread.Sleep(1000);
            **signup.Password.Click();
            signup.Password.SendKeys(Config.Credentials.Valid.Password);** //unable to locate these elements
            Thread.Sleep(1000);
            signup.CreateAccount.Click();
            Thread.Sleep(5000);

            Driver.driver.Quit();
        }
    }

Определение WebElements Класс, в котором элементы email и пароль определены

using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;

namespace NordstromRack.UI_Elements
{
    public class EmailSignUp
    {
        public EmailSignUp()
        {
            PageFactory.InitElements(Driver.driver, this);
        }

        [FindsBy(How = How.ClassName, Using = "form-label__input form-label__input--password")]
        public IWebElement Password { get; set; }

        [FindsBy(How = How.ClassName, Using = "form-label__input form-label__input--email")]
        public IWebElement EmailInput { get; set; }

        [FindsBy(How = How.ClassName, Using = "secondary-nav__link")]
        public IWebElement SignUpLink { get; set; }

        [FindsBy(How = How.ClassName, Using = "cta-button__content")]
        public IWebElement CreateAccount { get; set; }


    }
}

1 Ответ

1 голос
/ 10 марта 2019

Вам нужно избавиться от пробела и заменить его точкой при указании селектора CSS.Попробуйте заменить два верхних селектора на

[FindsBy(How = How.CssSelector, Using = "input.form-label__input.form-label__input--password")]
    public IWebElement Password { get; set; }

    [FindsBy(How = How.CssSelector, Using = "input.form-label__input.form-label__input--email")]
    public IWebElement EmailInput { get; set; }

Что лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...