2013-08-02 56 views
2

我想學習硒webdriver自動化,但我發現sendKeys命令不輸入密碼類型字段。我可以看到其他一些人也在使用Google搜索遇到同樣的問題,但我還沒有看到任何正確的答案。任何人都可以在這裏幫助我。Websdriver - sendKeys命令不輸入密碼類型字段

請在下面找到示例代碼;我從Selenium IDE生成代碼並在IDE上正常工作,但在使用webdriver時沒有問題。

package com.example.tests; 

public class Login { 
    private WebDriver driver; 
    private String baseUrl; 
    private boolean acceptNextAlert = true; 
    private StringBuffer verificationErrors = new StringBuffer(); 

    @Before 
    public void setUp() throws Exception { 
    driver = new FirefoxDriver(); 
    baseUrl = "http://www.webs.com/"; 
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    } 

    @Test 
    public void testLogin() throws Exception { 
    driver.get(baseUrl + "/"); 
    driver.findElement(By.cssSelector("span")).click(); 
    driver.findElement(By.id("FWloginUsername")).clear(); 
    driver.findElement(By.id("FWloginUsername")).sendKeys("[email protected]"); 
    driver.findElement(By.id("FWloginPassword2")).clear(); 
    driver.findElement(By.id("FWloginPassword2")).sendKeys("webs"); 
    driver.findElement(By.id("sign_in_leaf")).click(); 

    } 
+0

你是什麼意思「不工作」?它會拋出一個錯誤,或者只是不輸入? –

+0

對不起,我應該有更具體的。它根本不會輸入它。 –

+1

我不知道什麼是錯的。你確定它沒有輸入嗎?它可能運行得太快,以至於看不到它正在輸入/登錄。我會建議調試它並通過命令運行它。 –

回答

0

有兩個密碼字段,一個是隱藏的。解決方法是點擊第一個密碼[隱藏]字段以啓用第二個密碼字段。

driver.findElement(By.id("FWloginUsername")).sendKeys("[email protected]"); 
driver.findElement(By.id("FWloginPassword")).click(); 
driver.findElement(By.id("FWloginPassword2")).clear(); 
driver.findElement(By.id("FWloginPassword2")).sendKeys("webs"); 
0

我的密碼字段幾乎有類似的情況。同一個「密碼」字段有兩個元素,但具有不同的ID。 JavaScript在運行時切換「type = password」以進行點擊,清除或對此字段執行任何操作。在這種情況下

解決辦法是找到與輸入type = password文字,

例如:在這個問題上

driver.FindElement(By.CssSelector("input[type='password']")).SendKeys(IWebElement); 
-2
cvvTxtBox().sendKeys("1234"); 
cvvTxtBox().sendKeys(Keys.TAB); 

最終解決方案。
其他使用機器人