You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium Java操作动态数据表时无法添加数据至对应列

问题

执行Selenium Java脚本点击Add按钮后,数据未添加到下方的数据表,脚本直接卡住。业务流程为:在搜索框搜索药品、输入对应数量、点击Add按钮将记录添加至下方数据表(支持多条添加),后续还需选择记录、添加注释并点击Submit保存数据。当前使用的代码如下:

//Search Medicine, Define Quantity and Add
WebElement medicine_search = driver.findElement(By.xpath("//input[@id='txt_medicine']"));
medicine_search.sendKeys("DOLO 250MG SYRUP-60ML");
WebElement define_quantity =
driver.findElement(By.xpath("//input[@id='txt_quantity']"));
define_quantity.sendKeys("20");
WebElement btn_add =
driver.findElement(By.xpath("//input[@id='btn_addprescriptions']"));
btn_add.click();

排查与解决方向

  • 校验元素定位准确性:用浏览器开发者工具(F12)搜索//input[@id='btn_addprescriptions'],确认该XPath是否唯一指向目标Add按钮,避免定位到隐藏元素或其他同名元素。
  • 添加显式等待机制:点击按钮后页面可能存在异步加载,脚本未等待就继续执行会导致卡住。可以等待数据表新增记录出现,或等待按钮可点击后再操作:
    // 初始化等待器
    WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
    
    // 等待Add按钮可点击后再点击
    WebElement btn_add = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='btn_addprescriptions']")));
    btn_add.click();
    
    // 点击后等待数据表中出现新增记录(示例:假设数据表行ID为prescription_table)
    wait.until(ExpectedConditions.numberOfElementsToBeMoreThan(By.xpath("//table[@id='prescription_table']//tr"), 1));
    
  • 确认搜索结果是否被选中:部分搜索框需要从下拉列表中选择匹配的药品后,系统才会识别有效条目。脚本仅输入药品名未选择结果,会导致Add操作无效:
    medicine_search.sendKeys("DOLO 250MG SYRUP-60ML");
    // 等待下拉搜索结果出现并点击匹配项
    WebElement searchResult = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='search-dropdown']//li[contains(text(),'DOLO 250MG SYRUP-60ML')]")));
    searchResult.click();
    
  • 检查页面验证逻辑:查看是否有隐藏的验证提示(如数量输入不合法、药品不存在),脚本未处理这些前置验证会导致Add按钮点击无响应。可以添加步骤验证输入内容的合法性,或捕获页面错误提示。
  • 等待AJAX请求完成:点击Add后可能触发异步请求,需等待请求完成或加载指示器消失:
    // 等待页面加载指示器消失(假设加载器ID为loading-spinner)
    wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("loading-spinner")));
    

内容的提问来源于stack exchange,提问作者Tester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 13:32:56