http://mail.google.com的新JS启用页面正在使密码输入字段的ID变得麻烦。但是,我从电子邮件ID页面导航,ID为 - identifierID
。如何获取密码输入字段ID的gmail与硒Webdriver?
帮我取得密码字段的ID。
在此先感谢...
http://mail.google.com的新JS启用页面正在使密码输入字段的ID变得麻烦。但是,我从电子邮件ID页面导航,ID为 - identifierID
。如何获取密码输入字段ID的gmail与硒Webdriver?
帮我取得密码字段的ID。
在此先感谢...
请找到更新的代码:
代码:
driver.manage().window().maximize();
driver.get("http://www.gmail.com");
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");
我已经验证了它在我结束。让我知道如果这不起作用。
感谢@Monika对你的建议,但在我仍然没有得到预期的结果。我使用了'WebElement elementpwd = driver.findElement(By.xpath(“div [@ id ='password'] // input”)); elementpwd.sendKeys(“123”);' – Vicky
您在路径中犯了错误。请尝试:WebElement elementpwd = driver.findElement(By.xpath(“// div [@ id ='password'] // input”)); elementpwd.sendKeys(“123”); – Monika
我按照你的建议做了同样的事情。但是我的测试在输入密码字段的下一页(在输入电子邮件ID并单击下一个按钮之后)被删除。我可以分享可以帮助您审核的代码吗? – Vicky
相反,如果标识使用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="">
使用的组合输入元件,并具有在div内部文本
<div jsname="YRMmle" class="AxOyFc snByac" aria-hidden="true">Enter your password</div>
。
同样在点击正确的元素后,父元素会发生变化,这会使您再次找到元素并发送值。
您可以使用CssSelector或Xpath轻松实现此目的。但是,Google肯定会经常改变这种状况。
尝试设置使用JavaScript
字段的值作为
JavascriptExecutor JS =(JavascriptExecutor)驱动器; (“var elements = document.getElementsByName('password'); elements [0] .setAttribute('value','123');”);};}}
你可以粘贴HTML吗? –