在运行多个测试用例时,selenium正在输入无效文本,如附件中所示。 以下是显示错误的两个示例:
代码
//StaticVariable is class which has static values
var username = StaticVariable.username;
var password = StaticVariable.password;
driver.FindElement(By.Id("username")).SendKeys(username); //putting wrong values
driver.FindElement(By.Id("password")).SendKeys(password); //putting wrong values
driver.FindElement(By.Id("login")).Click();
任何人都可以帮我这个吗?任何帮助都会受到赞赏。
答案 0 :(得分:0)
使用clear
方法,然后输入文字:driver.findElement(By.cssSelector("").clear();
这可能会有所帮助。
答案 1 :(得分:0)
首先要确保
var username = StaticVariable.username;
正在分配正确的值。 使用
print
分配后检查用户名的值。
尝试使用以下代码:
driver.FindElement(By.Id("username")).click()
driver.FindElement(By.Id("username")).clear()
driver.FindElement(By.Id("username")).SendKeys(username);
答案 2 :(得分:0)
我可以通过几个原因看出这可能是一个问题。我首先尝试清除文本输入并确保它具有焦点。
var username = StaticVariable.username;
var password = StaticVariable.password;
// Fill out user name
var userElem = driver.findElement(By.id("username"));
userElem.click();
userElem.clear();
userElem.sendKeys(userName);
// Fill out password
var passElem = driver.findElement(By.id("password"));
passElem.click();
passElem.clear();
passElem.sendKeys(password);
// Click login button
driver.findElement(By.id("login"))
.click();
但是,如果没有解决这个问题,我会遇到这样的情况,即将字符串拆分并一次发送几个密钥就行了。 确实会对性能造成影响,所以除非你真的需要,否则我不会这样做。
public void fooTest() {
// Do stuff to get to the correct page, etc
var username = StaticVariable.username;
var password = StaticVariable.password;
// Fill out user name
var userElem = driver.findElement(By.id("username"));
sendKeys(userElem, userName);
// Fill out password
var passElem = driver.findElement(By.id("password"));
sendKeys(passElem, password);
// Click login button
driver.findElement(By.id("login"))
.click();
// do assertions, etc
}
private void sendKeys(WebElement elem, String keys) {
elem.click();
elem.clear();
for (int i = 0; i < keys.length(); i) {
elem.sendKeys(keys.charAt(i));
}
}
注意:抱歉语法/ c#错误,我几乎没用过这种语言......我对Java更熟悉了; - )
答案 3 :(得分:0)
而不是使用&#39; var&#39; ,您可能想尝试输入特定类型,例如&#39; string&#39;。问题必须在于传递给.SendKeys()或函数如何接收它。
string username = StaticVariable.username;
string password = StaticVariable.password;