我在selenium开发了一个非常简单的门户登录应用程序。它完美地运行,使用以下代码
WebDriver driver = new FirefoxDriver(firefoxProfile);
driver.get("http://inernalportal.com");
WebElement element = null;
element = driver.findElement(By.id("txtLoginID"));
element.sendKeys("user");
element = driver.findElement(By.id("txtpassID"));
element.sendKeys("password");
element = driver.findElement(By.id("btnLogin"));
element.click();
然而,当selenium输入用户名时,如果用户通过单击该字段明确地选择用户名字段(使用鼠标),则在输入密码之间我遇到问题,然后selenium在txtLoginID而不是txtpassID处输入密码,这将显示为userasd。
我想在数据输入期间禁用鼠标/键盘事件。
如何做到这一点。教学指南。
答案 0 :(得分:0)
尝试以下代码,这将禁用鼠标事件
import org.openqa.selenium.JavascriptExecutor;
WebDriver driver = new FirefoxDriver();
driver.get("http://inernalportal.com");
WebElement element = null;
element = driver.findElement(By.id("txtLoginID"));
element.sendKeys("user");
((JavascriptExecutor)driver).executeScript("document.getElementById('txtLoginID').style.pointerEvents='none'", driver.findElement(By.id("txtLoginID")));
element = driver.findElement(By.id("txtpassID"));
((JavascriptExecutor)driver).executeScript("document.getElementById('txtpassID').style.pointerEvents='none'", driver.findElement(By.id("txtpassID")));
element.sendKeys("password");
element = driver.findElement(By.id("btnLogin"));
element.click();