leniu无法在selenium webdriver中的表单文本框中输入值

时间:2016-03-07 07:53:35

标签: selenium selenium-webdriver

您好我使用way2sms网站并在发送短信屏幕我无法使用selenium webdriver输入手机号码字段中的手机号码。 HTML代码:`

form id="smsFrm" name="smsFrm" method="post">
<input id="ssaction" type="hidden" name="ssaction" value="ss"/>
<input id="Token" type="hidden" name="Token" value="F448FDFD10E9288F9B4A204EF40EB29A.w803"/>
<div id="smilebox" style=" display:none;">
<div class="Sms fl">
<label>Mobile Number</label>
<div class="m91">
<span>+91</span>
<input id="mobile" type="text" onchange="javascript:dispLocMob(this);" onkeydown="javascript:dispLocMob(this);" onkeyup="javascript:dispLocMob(this);" value="" maxlength="10" placeholder="Mobile Number" name="mobile"/>
</div>`

Selenium代码:

`obj.findElement(By.xpath("//*[@id='sendSMS']/a")).click();
Thread.sleep(5000);
//obj.findElement(By.id("mobile")).sendKeys("8186867724");
obj.findElement(By.xpath("//*[@id='mobile']")).sendKeys("1234567890");`

2 个答案:

答案 0 :(得分:0)

你的元素有一个id,它始终是使用Selenium处理HTML元素的最佳方式 - 非常简单但仍然绝对唯一(bc​​否则它不是有效的HTML)。所以试试:

findElement(By.id("username"))

完整的C#示例(在Java中应该类似):

static void Main()
{
    var driver = new ChromeDriver();
    driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(15));
    driver.Navigate().GoToUrl("http://site23.way2sms.com/content/index.html");
    IWebElement element = driver.FindElement(By.Id("username"));
    element.SendKeys("000");
}

答案 1 :(得分:0)

我切换到框架并检测到它。 。driver.switchTo()帧(driver.findElement(By.id( “帧”))); driver.findElement(By.id( “移动”))的SendKeys( “123456”);