如何在 firefox 中使用 webdriver 将密钥发送到 phone 字段?
How do I send keys to phone field using webdriver in firefox?
package erjan.testNG.personal_cabinet;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
public class Login_test {
WebDriver firefox ;
@Test
public void f() {
WebElement login_form
= firefox.findElement(By.id("login-form")) ;
WebElement phone_field = firefox.findElement(By.className("phone-username")) ;
WebElement password_field = firefox.findElement(By.xpath("//input[@type=\"text\"]"));
Assert.assertNotNull(login_form) ;
Assert.assertNotNull(phone_field) ;
Assert.assertNotNull(password_field);
phone_field.sendKeys("4457653245");
String x = phone_field.getText() ;
System.out.println("here we go!!!!!!!!! " + x) ;
}
@BeforeMethod
public void beforeMethod() {
firefox = new FirefoxDriver();
firefox.get("http://test.naimi.me/astana/login");
}
@AfterMethod
public void afterMethod() {
}
}
我看到 firefox 打开,但我没有看到我的号码被插入到 phone 字段中!
或者它发生得很快?或者可能是因为它必须以某种方式标准化?
我是否应该以某种方式 "slow down" 输入以查看它是按数字输入的?
我应该使用显式等待吗?
你说你没有看到它,但你得到 x 中的值了吗?不要减慢代码速度,而是尝试 运行 通过 IDE 中的调试模式或包含一些日志记录语句以帮助您查看代码在做什么。
尝试一件事,如果字段中已有文本,请先清除该文本字段:
phone_field.clear();
phone_field.sendKeys("4457653245");
这不是时间问题。
许多表单可能会在接受文本之前请求激活,因此
一种有价值的方法是找到元素,单击它然后插入文本。
phone_field.click();
phone_field.sendKeys("4457653245");
尝试使用以下方法:
getDriver().findElement(locator).sendKeys(Keys.chord("phone number formatted"));
package erjan.testNG.personal_cabinet;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
public class Login_test {
WebDriver firefox ;
@Test
public void f() {
WebElement login_form
= firefox.findElement(By.id("login-form")) ;
WebElement phone_field = firefox.findElement(By.className("phone-username")) ;
WebElement password_field = firefox.findElement(By.xpath("//input[@type=\"text\"]"));
Assert.assertNotNull(login_form) ;
Assert.assertNotNull(phone_field) ;
Assert.assertNotNull(password_field);
phone_field.sendKeys("4457653245");
String x = phone_field.getText() ;
System.out.println("here we go!!!!!!!!! " + x) ;
}
@BeforeMethod
public void beforeMethod() {
firefox = new FirefoxDriver();
firefox.get("http://test.naimi.me/astana/login");
}
@AfterMethod
public void afterMethod() {
}
}
我看到 firefox 打开,但我没有看到我的号码被插入到 phone 字段中! 或者它发生得很快?或者可能是因为它必须以某种方式标准化?
我是否应该以某种方式 "slow down" 输入以查看它是按数字输入的? 我应该使用显式等待吗?
你说你没有看到它,但你得到 x 中的值了吗?不要减慢代码速度,而是尝试 运行 通过 IDE 中的调试模式或包含一些日志记录语句以帮助您查看代码在做什么。
尝试一件事,如果字段中已有文本,请先清除该文本字段:
phone_field.clear();
phone_field.sendKeys("4457653245");
这不是时间问题。
许多表单可能会在接受文本之前请求激活,因此 一种有价值的方法是找到元素,单击它然后插入文本。
phone_field.click();
phone_field.sendKeys("4457653245");
尝试使用以下方法:
getDriver().findElement(locator).sendKeys(Keys.chord("phone number formatted"));