Webelement.click()点击&然后消失& sendkeys()不会在textBox中打印任何内容

时间:2014-04-17 11:41:35

标签: selenium

Selenium很新! 我需要登录门户网站的src代码如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <body title="">
</html>

在体内,我有一个登录按钮,如下所示

<div id="login-form:usernameDecoration">
  <div class="prop">
    <label class="name" for="login-form:usernameDecoration:username">Username:</label>
       <span class="value ">
         <span id="login-form:usernameDecoration:username" class="e-input">
             <input id="login-form:usernameDecoration:username" type="text"   name="login-form:usernameDecoration:username">
         </span>
        </span>
      <span class="rf-msgs error"> </span>
   </div>
</div>

我可以找到元素,即用户名textBox,也可以使用.click(),但光标不会持久存在。它简直消失了。当我执行sendKeys(&#34;用户名&#34;)时。它不会出现在文本框中。奇怪的是没有例外,我的测试通过了。 不过,我尝试了stackOverflow本身的一些问题中提到的方法,但没有任何效果。没有框架标签,所有内容都只在一个页面内。所以也没有切换。请帮帮我!硒似乎不是那么直接前进! :-)

标签是否有任何区别,我的意思是我仍然可以使用sendKeys()函数。我可以单击相同的按钮但无法发送任何文本。我想知道为什么,但不知道。

2 个答案:

答案 0 :(得分:1)

它根本不复杂。你的代码在哪里?你写了什么来识别和执行元素的行动?

如果要在文本框中输入文本,请使用以下代码:

driver.findElement(By.id("login-form:usernameDecoration:username")).sendKeys("xyz");

我认为您尝试将文本发送到标签而不是文本框,但文本框中没有填写文本。您必须在文本框本身的元素中输入文本。

答案 1 :(得分:0)

  

这是我的代码片段:WebElement   的userName = driver.findElement(By.xpath(&#34; .//* [@ ID =&#39;登录形式:usernameDecoration:我们ername&#39;]&#34)); username.sendKeys( &#34; XYS&#34);

我相信这会让你回到span元素: <span id="login-form:usernameDecoration:username" class="e-input">

您有两个具有相同ID的元素。确保您正在寻找具有该ID而不是跨度的INPUT。 //输入[@id =&#39;登录形式:usernameDecoration:我们ername&#39;]