首页 > 解决方案 > 没有元素硒的Sendkeys java

问题描述

我正在尝试编写一个简单的基于 java 的 selenium 代码,我将在其中加载页面,为用户名和密码提供所需的值。

页面加载后,用户名已经集中,但我可以在用户名或密码中输入值

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);

标签: java

解决方案


即使该字段已经聚焦,您也必须指定您希望“发送键”到哪个元素。所以获取用户名字段的 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/");


推荐阅读