簡體   English   中英

硒上的JavaScriptexecutor setAttribute值

[英]JavaScriptexecutor setAttribute value on selenium

我在 IE11 上執行硒自動化。 現在對於一個元素,比如說 ele; ele.sendKeys(characters)不能直接工作。 因此,我試圖通過 JavaScript 執行器更改該<input>標記的“值”屬性。 更改后,我將通過ele.getAttribute('value')進行驗證。 但是那個時候我得到這個值仍然像以前一樣為空。 我的測試也同樣失敗。

HTML 代碼

<form id="upload" method="post" action="/upload" enctype="multipart/form-data" style="width: 90%">
<label for="uploadinputFile">
<br style="clear:all">
<input id="browse_file" class="bttn-primary" type="button" value="Browse">
<input id="file_input_browser" type="file" name="upload_File">
<div id="button">
<input id="submit" class="bttn-primary" type="submit" disabled="" value="Upload">
</div>
</form>

硒代碼

WebElement brw=driver.findElement(By.id("file_input_browser"));
((JavascriptExecutor) driver).executeScript("document.getElementById('file_input_browser').setAttribute('value', 'new value for element')");
System.out.println("value:"+brw.getAttribute("value"));

我還使用了以下 JavaScriptExecutor: ((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('value', '" +c+"')",brw); //c 是一個字符串

但是每次我得到brw.getAttribute("value")的輸出為空白/空

您必須在操作 DOM 之后實例化您的WebElement ,而不是之前。 否則,存儲的WebElement將不包含您要查找的信息,並將返回null

driver.executeScript("document.getElementById('ID').setAttribute('value','NEW_VALUE');");
System.out.print("value: "+driver.findElement(By.id("ID")).getAttribute("value"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM