2017-04-27 13 views
-1

我需要擴大textarea的具有動態XPath和我可能無法使用:如何在元素路徑爲動態時在selenium webdriver中擴展textarea?

(JavascriptExecutor) driver.executeScript("document.getElementById('someID').setAttribute('rows', '50')"); 
(JavascriptExecutor) driver.executeScript("document.getElementById('someID').setAttribute('cols', '60')"); 

因爲屬性ID,價值類等都是動態的。 有沒有其他的方式來調整textarea的大小? 爲元素的HTML代碼是

<textarea name="comments" id="isc_4G3" $89="isc_TextAreaItem_25" $9a="$9b" class="textItem" style="margin:0px;WIDTH:1132px;HEIGHT:60px;" autocomplete="OFF" spellcheck="true" wrap="SOFT" tabindex="1863" oninput="isc_TextAreaItem_25.$43g()" handlenativeevents="false"></textarea> 

另外,我曾試圖

Actions action = new Actions(driver); 
action.moveToElement(getInternalNotesTextArea()).clickAndHold().moveByOffset(xOffset, yOffset).release().perform(); 

這並沒有進行這項工作。

+0

你能提供更多的信息:1.你有什麼試過?顯示代碼。 2.什麼對你有用? 3.你卡在哪裏? 4.提供相關的HTML DOM。 – DebanjanB

+0

請發佈一些我們所需的HTML元素嗎? – kushal

+0

我在問題中添加了此元素的HTML代碼。 – kit

回答

0

我張貼的代碼段,對我

WebElement textArea= getNotesTextArea(); 
JavascriptExecutor executor = (JavascriptExecutor) driver; 
executor.executeScript("arguments[0].setAttribute('style', 'WIDTH:1132px;HEIGHT:365px');", textArea); 

工作,在那裏,getNotesTextArea()動態xpath返回textarea

+0

在我的回答中,我試圖解釋如何在selenium JavaScript執行器中傳遞元素作爲參數。這樣你就可以製作通用的方法了。是的,增加文本區域的高度和寬度就需要改變樣式屬性。但在自動化測試中,不建議像這樣更改元素屬性。 – Shailendra

+0

Shailendra,的確,你的回答幫助我知道如何在selenium javascript executor中傳遞元素作爲參數,但是那段代碼沒有擴展textarea。所以,我不得不使用這個。 – kit

0

對於使用XPATH的動態屬性查找元素。並通過webelement執行腳本。

WebElement textArea= webDriver.findElement(xpath_of_textarea); 

JavascriptExecutor executor = (JavascriptExecutor) webDriver; 

executor.executeScript("arguments[0].setAttribute('rows', '50');", textArea); 
executor.executeScript("arguments[0].setAttribute('cols', '60');", textArea); 

我希望這將有助於

+0

我試過了,但沒有奏效。它也不會拋出任何異常,只是不會擴展textarea。 – kit

+0

確保你的textarea的xpath是正確的。 – Shailendra

+0

這是正確的。我檢查了很多次。 – kit

相關問題