无法在Nordstrom网站上找到电子邮件和密码元素,我们尝试注册



遵循以下过程:导航到Nordstrom Rack网站,然后单击注册当弹出显示时,输入电子邮件和密码并创建帐户

以下是代码:

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定义类别的元素电子邮件和密码定义

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; }

    }
}

在指定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; }

更好?

最新更新