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()函数。我可以单击相同的按钮但无法发送任何文本。我想知道为什么,但不知道。
答案 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;]