在Selenium中向Aadhaar输入框输入数据失败,求正确实现方法
在Selenium VB中向指定输入框输入数据失败的解决方法
问题场景
目标输入框的HTML元素如下:
<input name="aadharNumber" placeholder="Enter Aadhaar No." error="[object Object]" maxlength="12" type="text" class="form-control" value="">
尝试了以下两段VB代码均未成功输入数据:
bot.FindElementByClass("form-control").SendKeys ("242730110592")
bot.FindElementByname("aadharNumber").SendKeys ("242730110592")
可行的解决方法
等待元素完全加载
页面可能未渲染完成就执行了输入操作,需显式等待元素可交互:Dim wait As New WebDriverWait(bot, TimeSpan.FromSeconds(10)) Dim aadharInput As IWebElement = wait.Until(ExpectedConditions.ElementToBeClickable(By.Name("aadharNumber"))) aadharInput.SendKeys("242730110592")检查是否存在iframe嵌套
若输入框在iframe内,需先切换到对应iframe才能定位元素:' 替换为实际iframe的id/name/元素定位 bot.SwitchTo().Frame("target-frame-id") bot.FindElementByName("aadharNumber").SendKeys("242730110592") ' 操作完成后切回主文档 bot.SwitchTo().DefaultContent()使用更精准的定位器
避免类名重复或名称冲突,用CSS选择器或XPath定位:- CSS选择器:
bot.FindElementByCssSelector("input[name='aadharNumber'].form-control").SendKeys("242730110592") - XPath:
bot.FindElementByXPath("//input[@name='aadharNumber' and @placeholder='Enter Aadhaar No.']").SendKeys("242730110592")
- CSS选择器:
先清除输入框再输入
部分输入框可能存在默认值或占位符干扰,先清除再输入:Dim aadharInput As IWebElement = bot.FindElementByName("aadharNumber") aadharInput.Clear() aadharInput.SendKeys("242730110592")模拟真实用户操作
先点击激活输入框,再执行输入:Dim aadharInput As IWebElement = bot.FindElementByName("aadharNumber") aadharInput.Click() aadharInput.SendKeys("242730110592")通过JavaScript注入输入
若常规方法无效,直接用JS修改输入框value属性:Dim jsExecutor As IJavaScriptExecutor = CType(bot, IJavaScriptExecutor) jsExecutor.ExecuteScript("document.querySelector('input[name=""aadharNumber""]').value = '242730110592';")
内容的提问来源于stack exchange,提问作者Ajarlinux
相关产品推荐
相关产品推荐

