2017-06-24 39 views

回答

0

请找到更新的代码:

代码:

driver.manage().window().maximize(); 
    driver.get("http://www.gmail.c‌​om"); 
    WebElement elementid = driver.findElement(By.id("identifierId")); 
    elementid.sendKeys(""); 
    WebElement elementnxt = driver.findElement(By.id("identifierNext")); 
    elementnxt.click(); 
    WebDriverWait wait = new WebDriverWait(driver, 100); 
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@type='password']"))); 
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@type='password']"))); 
    WebElement elementpwd = driver.findElement(By.xpath("//input[@type='password']")); 
    elementpwd.sendKeys("123"); 

我已经验证了它在我结束。让我知道如果这不起作用。

+0

感谢@Monika对你的建议,但在我仍然没有得到预期的结果。我使用了'WebElement elementpwd = driver.findElement(By.xpath(“div [@ id ='password'] // input”)); elementpwd.sendKeys(“123”);' – Vicky

+0

您在路径中犯了错误。请尝试:WebElement elementpwd = driver.findElement(By.xpath(“// div [@ id ='password'] // input”)); elementpwd.sendKeys(“123”); – Monika

+0

我按照你的建议做了同样的事情。但是我的测试在输入密码字段的下一页(在输入电子邮件ID并单击下一个按钮之后)被删除。我可以分享可以帮助您审核的代码吗? – Vicky

3

相反,如果标识使用name属性来获取字段的访问。

document.getElementsByName("password")[0]; 

它会给你输入密码的元素。

<input type="password" class="whsOnd zHQkBf" jsname="YPqjbf" autocomplete="current-password" spellcheck="false" tabindex="0" aria-label="Enter your password" name="password" autocapitalize="off" autocorrect="off" dir="ltr" data-initial-dir="ltr" data-initial-value=""> 
+0

谢谢Dinesh,我甚至使用过名字以及名字属性。但是,没有达到预期的结果。 – Vicky

+0

我已经使用了这个-'gmail.findElement(By.name(“Password”))。sendKeys(“xyz”);' – Vicky

0

使用的组合输入元件,并具有在div内部文本

<div jsname="YRMmle" class="AxOyFc snByac" aria-hidden="true">Enter your password</div>

同样在点击正确的元素后,父元素会发生变化,这会使您再次找到元素并发送值。

您可以使用CssSelector或Xpath轻松实现此目的。但是,Google肯定会经常改变这种状况。

+0

那么如何才能(不使用密码输入字段)做出gmail页面的测试用例。 – Vicky

+0

我们必须找到密码输入字段元素,单击密码输入字段,然后再次找到元素并将数据发送到字段。 @Vicky – Gokul

+0

曾尝试使用xpath,名称,ID等访问相同的内容,但仍无法获得解决方案。 – Vicky

0

尝试设置使用JavaScript

字段的值作为

JavascriptExecutor JS =(JavascriptExecutor)驱动器; (“var elements = document.getElementsByName('password'); elements [0] .setAttribute('value','123');”);};}}