簡體   English   中英

使用 javascript selenium 清除和發送密鑰

[英]Clear and sendkeys using javascript selenium

我有一個問題文本字段。 當我點擊它時display:none for h3 出現並且輸入標簽消失。 然后我可以清除字段並輸入新名稱。

<td style="width:92%;">
                                <h3 id="question_text_1846" onclick="return onClickQuestion(1846,'text');">test name</h3>
                                <input type="text" id="question_text_input_1846" onkeypress="return OnKeyPress(event, 1846,'text');" name="question_text_input_1846" onblur="return onBlurQuestion(1846,'text');" placeholder="Question Text" value="test" class="form-control myInput" style="display:none;" />
                                <script type="text/javascript">
                                    $("#question_text_1846").html(unescape($("#question_text_1846").html()));
                                </script>
                            </td>

問題是如何通過 selenium 設置新名稱(清除字段和發送鍵),可能是 javascript 操作。 我嘗試使用幾種方法,但它不起作用。

element = driver.findElement(By.xpath("//h3[@id='question_text_"+ExtractQuestionTextInputID()+"']"));
        actions = new Actions(driver);
        actions.moveToElement(element);
        actions.perform();
        element.click();

element = driver.findElement(By.xpath("//input[@id='question_text_input_"+ExtractQuestionTextInputID()+"']"));

        element.clear();
element.sendKeys("test_question_one");

還有js

String qtid = "question_text_" + ExtractQuestionTextInputID();
        String qtiid = "question_text_input_" + ExtractQuestionTextInputID();
        js.executeScript("document.getElementById("+qtid+").setAttribute('style', 'display: none;')");
        js.executeScript("document.getElementById("+qtiid+").setAttribute('style', '')");

這是從標簽屬性中提取id的方法

public String ExtractQuestionTextInputID(){
        String question_text_input_id = driver.findElement(By.xpath("//input[@value='New Question']")).getAttribute("id");
        Pattern p = Pattern.compile("\\d+");
        Matcher m = p.matcher(question_text_input_id);
        String mid = new String();
        while(m.find()) {
            //System.out.println(m.group());
            mid = m.group();
        }
        return mid;
    }

我不確定我是否理解正確,但您是否嘗試將輸入的屬性“值”設置為空字符串?

暫無
暫無

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

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