2016-09-14 1 views
0

Я неплохо осмотрелся, однако не смог найти конкретный ответ, который я после; надеясь, что кто-то сможет указать мне в правильном направлении.PayPal Sandbox checkout 'continue button' - Не удается найти элемент: - C# WebDriver

Я обрабатываю процесс проверки PayPal с помощью WebDriver 2.53 в Visual Studio 2015 с использованием C# против драйвера Firefox. Мой поток в 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, я всегда возвращался:

исключение типа «OpenQA.Selenium.NoSuchElementException 'произошел в WebDriver.dll, но не был обработан в коде пользователя. Дополнительная информация: Не удалось найти элемент: { «метод»: «идентификатор», «селектор»: «confirmButtonTop»}

Я пытался найти кнопку с помощью XPath, ID и т.д., но ничего, кажется, позволяет выбрать и всегда возвращается с «Невозможно найти элемент».

HTML

Кто-нибудь имел проблемы с кнопкой «Продолжить» в среде песочницы PayPal, или посоветуйте, что я не хватает? Я попытался переключить фокус, но это, похоже, не работает.

+1

Может быть, у вас есть еще один IFRAME или вы не в том же IFRAME, но в основном окно? – lauda

+0

Я так подумал и добавил «driver.SwitchTo(). Frame (driver.FindElement (By.TagName (« iframe »))); прежде чем пытаться найти и выбрать вариант продолжения; однако безрезультатно. Я добавлю полный HTML-раздел раздела, на который я смотрю основное описание. – Shutey

+0

Добавьте html с разделом для этого, если это возможно. У меня есть тест на paypal, и у меня нет iframe в моем случае, но после входа я удостоверяюсь, что я вошел в систему, ожидая css selector "#contactInfo .confidential", и в моем случае для продолжения нажмите кнопку css selector «#step #continue» – lauda

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^