[英]Selenium WebDriver. Entered value for Input field was cut for some unknown reason
我试图在“登录”表单中输入某些值:
| username | password |
| admin | adminpassword |
我使用Selenium Webdriver v.3和Firefox的geckodriver使用以下Java代码将值发送到输入字段中:
for (User user : users) {
base.driver.findElement(By.name("UserName")).sendKeys(user.username);
base.driver.findElement(By.name("Password")).sendKeys(user.password); }
结果,我在用户界面上看到:
用户 : admin
密码 : adminpas
当然,由于密码错误,测试失败。 我不明白为什么值从adminpassword 削减为adminpas ? 而且,每次运行测试时,它都会减少diff个字符。
1)检查是否会在其他浏览器上发生
如果是,请转到下面的第2点
如果不是,请检查webdriver是否与浏览器兼容,尝试使用其他版本的webdriver
2)检查绑定到密码框的任何按键事件
在相同情况下,开发人员绑定键事件可在用户单击登录或执行其他操作之前通过Ajax来检查非法输入或检查系统是否在后台有该用户。
如果是,则密钥事件破坏了正常的sendKeys,请尝试在backgroud中通过javascript设置密码:
import org.openqa.selenium.JavascriptExecutor;
String script = "arguments[0].value=arguments[1]";
WebElement passwordBox = driver.findElement(By.name("Password"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(script, passwordBox, user.password);
// send a space or TAB to trigger key event
passwordBox.sendKeys(" ");
// passwordBox.sendKeys(Key.TAB);
如果不是,请回到第1点,尝试使用网络驱动程序和浏览器的其他组合
//pom.xml
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.0</version> // you can change to other version
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.