8

Ho elemento nel mio codice che assomiglia a questo:Come impostare "valore" per inserire elementi web usando selenio?

<input id="invoice_supplier_id" name="invoice[supplier_id]" type="hidden" value=""> 

voglio impostare il suo valore, così ho creato un elemento web con la sua XPath:

val test = driver.findElements(By.xpath("""//*[@id="invoice_supplier_id"]""")) 

ma ora non vedo un opzione per impostare il valore ...

+1

Se Stai lavorando con un ID, dovresti usare il By-Locator appropriato: 'By.id (" invoice_supplier_id ")' –

+1

Attualmente stai raccogliendo un elenco di WebElements. È necessario estrarre WebElement dall'elenco o trovare solo WebElement da solo. Sarà inoltre necessario mostrare l'elemento prima che Selenium possa interagire con esso. – Ardesco

risposta

14

Uso findElement invece di findElements

driver.findElement(By.xpath("//input[@id='invoice_supplier_id'])).sendKeys("your value"); 

O

driver.findElement(By.xpath("//input[@id='invoice_supplier_id'])).setAttribute("value", "your value") 

O

driver.findElement(By.id("invoice_supplier_id")).setAttribute("value", "your value"); 

Spero che vi aiuterà voi :)

+0

Invia chiavi a un elemento nascosto? –

+6

Ho riscontrato lo stesso problema qui. Ma non esiste un tale metodo 'setAttribute' in WebElement. Qualche altro suggerimento? –

+0

@NarayanSubedi, il metodo sendKeys sta funzionando con me \t \t \t driver.findElement (By.id ("elementId")). SendKeys ("valore", "nuovo valore"); – eeadev

7
driver.findElement(By.id("invoice_supplier_id")).setAttribute("value", "your value"); 
1

Come detto Shubham Jain, questo sta lavorando per me: driver.findElement(By.id("invoice_supplier_id")).sendKeys("value"‌​, "new value");