2015-12-01 36 views
2

我使用selenium webdriver加速我的測試。在我的工作中,我們的網站將重定向到paypal,以便用戶完成付款。但是,我無法讓selenium webdriver在paypal上找到電子郵件和密碼輸入字段。Selenium webdriver如何找到滿足javascript的http響應元素

樣品貝寶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網站上,我總是有一個'沒有這樣的元素'的錯誤信息發現異常。

我可以找到在firefox firepath元素,但我不能讓硒webdriver的工作。

我知道這個錯誤可能是由貝寶登錄頁面整個頁面中的javascript引起的。我只是不知道如何處理這種情況。你能幫我解答嗎?

+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

相關問題