繁体   English   中英

Selenium WebDriver。 由于某些未知原因,输入字段的输入值被剪切

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM