PayPal沙盒结帐'继续按钮' - 无法找到元素: - C#WebDriver

时间:2016-09-14 14:00:37

标签: c# selenium selenium-webdriver paypal ui-automation

我已经好好看看了,但是我找不到具体的答案;希望有人能指出我正确的方向。

我正在使用C#针对Firefox驱动程序在Visual Studio 2015中使用WebDriver 2.53自动执行PayPal结帐流程。我流入PayPal很好,能够通过沙箱环境登录。但是,当我在初次登录后进入确认屏幕时,我似乎无法选择继续按钮。

enter image description here

我的代码是:

driver.SwitchTo().Frame(driver.FindElement(By.TagName("iframe")));
var emailAddressLogin = driver.FindElement(By.Id("email"));
emailAddressLogin.SendKeys("EMailAddress");
var password = driver.FindElement(By.Id("password"));
password.SendKeys("Password");
var login = driver.FindElement(By.Id("btnLogin"));
login.Click();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30));
var ContinueButton = driver.FindElement(By.XPath("//*[@id=\"confirmButtonTop\"]"));
ContinueButton.Click();

一旦进入confirmButtonTop选择,我总是回来:

  

WebDriver.dll中出现“OpenQA.Selenium.NoSuchElementException”类型的异常,但未在用户代码中处理。附加信息:无法找到元素:{“method”:“id”,“selector”:“confirmButtonTop”}

我试图通过XPath,ID等找到按钮,但似乎没有任何东西允许选择,并始终返回“无法找到元素”。

HTML

有没有人在PayPal沙盒环境中遇到“继续”按钮的问题,或者建议我缺少什么?我试图切换焦点,但这似乎不起作用。

1 个答案:

答案 0 :(得分:0)

好的,所以我做了一些搜索,我发现在按钮选择工作之前将以下内容添加到我的代码中:

driver.SwitchTo()窗口(driver.WindowHandles.Last());

所以结束代码看起来像:

driver.SwitchTo().Frame(driver.FindElement(By.TagName("iframe")));
var emailAddressLogin = driver.FindElement(By.Id("email"));
emailAddressLogin.SendKeys("EMailAddress");
var password = driver.FindElement(By.Id("password"));
password.SendKeys("Password");
var login = driver.FindElement(By.Id("btnLogin"));
login.Click();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
driver.SwitchTo().Window(driver.WindowHandles.Last());
var ContinueButton = driver.FindElement(By.XPath("//*[@id=\"confirmButtonTop\"]"));
ContinueButton.Click();

这取自Selenium webdriver selecting new window c#,感谢joinsaad