2015-12-01 4 views
2

Я использую web-редактор selenium для ускорения моего тестирования. В моей работе наш веб-сайт будет перенаправлен на paypal для того, чтобы пользователь завершил оплату. Тем не менее, я не могу заставить webdriver selenium найти поле ввода электронной почты и пароля на paypal.Как Selenium webdriver находит элемент с ответом на http, полным javascript

Образец PayPal URL: https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-07L974777B231831F#/checkout/login

Демонстрационный моего кода может понравиться это:

WebDriver m_driver = new FirefoxDriver(); 
    String redirected_url = "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-0AT82163FM860854K#/checkout/login"; 

    m_driver.get(redirected_url); 
    Thread.sleep(15*1000); 
    WebElement we = m_driver.findElement(By.xpath(".//*[@id='email']")); 
    we.sendKeys("login_email"); 
    we = m_driver.findElement(By.xpath(".//*[@id='password']")); 
    we.sendKeys("login_password"); 
    we = m_driver.findElement(By.xpath(".//*[@id='btnLogin']")); 
    we.click(); 

Моя проблема:

С этим кодом и на PAYPAL сайте, я всегда получил сообщение об ошибке «нет такого элемента» найдено исключение.

Я могу найти элемент с firepath в firefox, но я не могу заставить работать selenium webdriver.

Я знаю, что эта ошибка может быть вызвана javascript на всей странице страницы входа в PayPal. Я просто не знаю, как справиться с этой ситуацией. Не могли бы вы помочь мне с ответом?

+0

Что вы имеете в виду на JavaScript в целых страницах? – Saifur

ответ

4

Причина, по которой вы не можете найти эти элементы, это iframe. Итак, используйте метод switchTo и switchTo iframe, прежде чем начать поиск элемента. Что-то вроде:

driver.switchTo().frame("injectedUl"); 
WebElement we = m_driver.findElement(By.xpath(".//*[@id='email']")); 
... 

enter image description here

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

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