我正在尝试使用JS在自动化测试中键入电子邮件。
Before func call
hello
After func call
我收到错误消息var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build();
until = webdriver.until;
driver.get('http://www.automationpractice.com');
driver.manage().window().maximize();
driver.findElement(webdriver.By.linkText("Sign in")).click();
driver.sleep(10000);
var emailInput = driver.findElement(webdriver.By.id("email_create"));
emailInput.sendKeys("natanatantsaq1w@pl.pl");
但我确定此选择器存在。你能帮忙吗?
答案 0 :(得分:2)
您要调用的函数是异步的 单击并让驱动程序进入睡眠状态,但其余代码仍将执行。
如果您使用的是异步功能,请尝试使用 await 关键字,或者使用 .then()执行其余代码
my_function = async () => {
var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build();
until = webdriver.until;
await driver.get('http://www.automationpractice.com');
await driver.manage().window().maximize();
await driver.findElement(webdriver.By.linkText("Sign in")).click();
await driver.sleep(10000);
await driver.findElement(webdriver.By.id("email_create")).sendKeys("natanatantsaq1w@pl.pl")
}
检查您要调用的所有函数,看看它是否返回Promise
答案 1 :(得分:0)
该ID与电子邮件输入字段不匹配, 试试这个,
var emailInput = driver.findElement(webdriver.By.id("//input[@name='email']"));
emailInput.sendKeys("natanatantsaq1w@pl.pl");