我正在尝试编写一个简单的基于Java的硒代码,在该代码中我将加载页面,为用户名和密码提供所需的值。
页面加载用户名后,页面已经聚焦,但我可以在用户名或密码中输入值
Using MAC - Eclipse
对于编码感到抱歉,我是陌生的,因此将非常感谢您提供任何帮助
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
WebDriver driver = new FirefoxDriver();
driver.get("http://dc1.racbusinessclub.co.uk/login/");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
Thread.sleep(2000);
driver.findElement(By.tagName("body")).sendKeys("rac-dc");
Thread.sleep(2000);
driver.findElement(By.tagName("body")).sendKeys(Keys.TAB);
Thread.sleep(2000);
答案 0 :(得分:0)
即使该字段已经聚焦,您也必须指定希望“发送键”到的元素。因此,获取用户名字段的ID,然后然后使用sendKeys,如下所示:
driver.findElement(By.id("userNameInputBox")).sendKeys("rac-dc");
此外,值得注意的是,在脚本中使用Thread.sleep是不好的做法。如果您在等待什么,请检查该元素的存在,而不是等待任意时间。
编辑:实际上,在上方看到您的答复,我可以看到您正在尝试与警报弹出窗口进行交互,您可以使用以下方法进行操作:
driver.switchTo().alert().sendKeys(yourString);
或者,您可以完全跳过该页面,并使用URL中的凭据导航至页面-请记住不要对这些内容进行硬编码:
driver.get("http://username:password@http://dc1.racbusinessclub.co.uk/");
答案 1 :(得分:0)
下面是完成此操作的基本方法。
driver.findElement(By.id("username")).sendKeys(username);
driver.findElement(By.id("password")).sendKeys(password);
pause(3);
WebElement button = driver.findElement(By.tagName("button"));
button.sendKeys(Keys.RETURN);
登录后,您可以声明如下的网址
Assert.assertTrue(driver.getCurrentUrl().endsWith("/yourURL"));
您可以通过右键单击页面并选择检查从浏览器中获取用户名和密码ID。