2017-03-18 74 views
0

作爲我的要求的一部分,我需要在網頁中一個接一個地填充6個單元格。 所有這6個單元格都放置在網頁的同一行中。selenium webdriver中的Sendkeys查詢java

代碼如下:

driver.findElement(By.id("a")). sendKeys(Name, Keys.TAB); 

WebDriverWait waiting2 = new WebDriverWait(driver, 50); 
waiting2.until(ExpectedConditions.elementToBeClickable(By.id("b"))); 

driver.findElement(By.id("b")).sendKeys(Contact, Keys.TAB); 
WebDriverWait waiting3 = new WebDriverWait(driver, 50); 
waiting3.until(ExpectedConditions.elementToBeClickable(By.id("c"))); 

driver.findElement(By.id("c")).sendKeys(Address, Keys.TAB); 

WebDriverWait waiting4 = new WebDriverWait(driver, 50); 

waiting4.until(ExpectedConditions.elementToBeClickable(By.id("d"))); 

driver.findElement(By.id("d")).sendKeys(email, Keys.TAB); 
WebDriverWait waiting5 = new WebDriverWait(driver, 50); 
waiting5.until(ExpectedConditions.elementToBeClickable(By.id("e"))); 

driver.findElement(By.id("e")).sendKeys(Startdate, Keys.TAB); 

WebDriverWait waiting6 = new WebDriverWait(driver, 50); 
waiting6.until(ExpectedConditions.elementToBeClickable(By.id("f"))); 

driver.findElement(By.id("f")).sendKeys(Enddate); 

的名稱,地址,聯繫,開始日期,結束日期是變量,這是從一個excel工作表中獲取數據。當我運行這段代碼時,有時候所有的單元格都會按照預期填充。有時只有少數細胞被填充。 這就是例如cell1和cells2從excel工作表獲取值。單元格3保持空白。再次cell4得到的價值。

如何填充所有的單元格,一個接一個地排除任何單元格空白。

簡而言之,只有在填充前一個單元格後,如何使代碼移動到下一個單元格?

+0

嘗試使用下面的等待: 'driver.manage()超時()implicitlyWait(10,TimeUnit.SECONDS);' –

+0

你可以嘗試以下的所有元素:。 而(driver.findElement(通過。 id(「c」))。getText()。equals(null)){ \t driver.findElement(By.id(「c」))。sendKeys(value); } – kushal

回答

0

如果您使用隱式等待並且您不必移動到下一個文本框,則它會自動爲sendKes方法被調用的任何元素執行,您的問題將得到解決。但是你需要小心如果頁面從一個文本字段移動到另一個文本字段時刷新,但即使它刷新,隱式等待也可以解決問題。使用隱式等待,你的問題一定會解決。

相關問題