清冬暖雪 2023-12-21 14:15 采纳率: 50%
浏览 24
已结题

selenium-java解决input标签有readonly无法输入文本

selenium-java解决input标签有readonly无法输入,这个怎么办啊

img

如图所示


 List<WebElement> awardGrade =driver.findElements(By.className("el-input__inner"));
        String jsString = "awardGrade.get(5).removeAttribute('readonly')";
        ((JavascriptExecutor) driver).executeScript(jsString);//执行js去掉readonly属性
        awardGrade.get(5).sendKeys("省级");
        awardGrade.get(6).sendKeys("一等奖");

出现如下报错

org.openqa.selenium.JavascriptException: javascript error: awardGrade is not defined


  • 写回答

3条回答 默认 最新

  • 爱蹦跶的大A阿 新星创作者: 前端开发技术领域 2023-12-21 14:32
    关注

    解决办法是先通过JavaScript来移除该input标签的readonly属性,然后就可以输入值了。示例代码:

    WebElement input = driver.findElement(By.id("inputId"));  // 定位input元素
    
    // 先通过JavaScript移除readonly属性
    ((JavascriptExecutor)driver).executeScript("arguments[0].removeAttribute('readonly')", input);  
    
    // 移除属性后再通过sendKeys输入值
    input.sendKeys("hello");
    
    

    这里的关键步骤是:

    强制转换driver为JavascriptExecutor类型
    执行removeAttribute('readonly')方法移除readonly
    重新获取input元素,然后使用sendKeys输入文本值
    通过这种方式,就可以绕过readonly属性,向input标签中输入文本值了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月21日
  • 创建了问题 12月21日