【问题标题】:Selenium Unable to enter Paypal Sandbox DetailsSelenium 无法进入 Paypal 沙箱详细信息
【发布时间】:2017-07-30 17:29:04
【问题描述】:

我正在尝试将我的 Selenium 测试添加到 Paypal 测试详细信息,以便自动化 Paypal 测试

我可以导航到 Sandbox.Paypal 页面,但是一旦到达那里,我就无法让 Selenium 自动输入电子邮件和密码并单击登录按钮。我在 Visual Studio 上用 C# 编写。

我目前这一步的代码是

                    driver.Instance.SwitchTo().Frame("injectedUl");

                    By AtPaypal = By.CssSelector("#loginSection > div.pr.row-fluid > xo-title > h1");
                    new WebDriverWait(driver.Instance, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementIsVisible(AtPaypal));

                    var email = driver.Instance.FindElement(By.Name("login_email"));
                    email.SendKeys(Keys.Control + "a");
                    email.SendKeys("xxxxxxxxxx");

                    var Password = driver.Instance.FindElement(By.Name("login_password"));
                    Password.SendKeys(Keys.Control + "a");
                    Password.SendKeys("xxxxxxxxxx");

                    var Login = driver.Instance.FindElement(By.Id("btnLogin"));
                    Login.Click();

                    By Paypal = By.Id("confirmButtonTop");
                    new WebDriverWait(driver.Instance, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementIsVisible(Paypal));

                    var ContinueBtn = driver.Instance.FindElement(By.Id("confirmButtonTop"));

                    ContinueBtn.Click();

但是这不起作用,非常感谢任何帮助。

问候

理查德

【问题讨论】:

  • 你能找到元素密码字段和电子邮件字段吗?
  • 因为我们看不到实际的 html,所以突出的是您切换到了 iframe。这实际上是在 iframe 中吗?如果是这样,“injectedUl”是 iframe 的实际名称吗?当您无法与任何对象交互时,可能是您正在与不正确的框架进行交互,或者不需要该框架。
  • sandbox.paypal.com/cgi-bin/… 这是 Paypal Sandbox 的网址,阅读其他人过去如何解决此问题导致 Iframe 代码,但这对我不起作用。非常感谢任何帮助

标签: c# visual-studio selenium paypal


【解决方案1】:

嘿,理查德,我得到了这个工作。

如果您没有在字段中输入内容,则表示您没有正确访问 iframe。如果您通过调试运行它,它会工作吗?只是想知道这是不是时间问题。我也会使用 ID 而不是名称。

页面对象我刚刚使用了该字段的输入 id。

创建一个 switchTo 以转到 iframe。

     public static void SwitchToIframe(string frameName)
    {
      _webDriver.SwitchTo().Frame(frameName);
    }

拼凑起来……

    Driver.Goto("https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-54365007M8453270M#/checkout/login");
        Driver.SwitchToIframe("injectedUl");
        
     var email = driver.FindElement(By.ID("email"));
                email.SendKeys("test@no.com");

                var Password = driver.FindElement(By.ID("password"));
                Password.SendKeys("xxxxxxxxxx");

                var Login = driver.FindElement(By.Id("btnLogin"));
                Login.Click();

【讨论】:

  • 您好,感谢您在周五晚些时候使用类似的方法成功解决了这个问题 :) 但现在有相同问题的任何人都可以在这里找到答案 :)。
【解决方案2】:

您可以尝试在密码字段中发送 Enter 键,而不是单击登录按钮。

【讨论】:

  • 嗨,马特,我什至无法在登录按钮之前将登录名和密码传递到字段。
猜你喜欢
  • 2013-04-03
  • 2016-12-06
  • 2017-09-24
  • 2012-05-13
  • 2021-11-30
  • 2018-09-14
  • 2012-11-02
  • 1970-01-01
  • 2013-05-17
相关资源
最近更新 更多